首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我无法聚合按年份R分组的记录值

我无法聚合按年份R分组的记录值
EN

Stack Overflow用户
提问于 2019-04-24 18:50:49
回答 1查看 54关注 0票数 0

我有两列。第一列被称为gdp_per_year,它是那个特定年份的国内生产总值。第二列是year。这是各自的年份。

gdp_per_year中的值采用例如1,032,023,232的格式,因此使用逗号作为千位分隔符。我已经尝试了许多不同的方法来解决这个问题,但到目前为止我还不能弄清楚。我尝试过基于唯一值聚合和分组的不同代码。我还从值中删除了,,并将它们替换为.和空。

我已经将值从字符转换为整数,但它仍然不起作用。

代码语言:javascript
复制
gdp_per_year <-  Suicides %>% select(gdp_per_year, year)

将其转换为整数。

代码语言:javascript
复制
gdp_per_year$gdp_per_year <-             
as.integer(as.character(gdp_per_year$gdp_per_year))

测试数字是否为整数,因为它不是加法

代码语言:javascript
复制
typeof(gdp_per_year$gdp_per_year)

它是整数

第一次尝试:

代码语言:javascript
复制
total_gdp_per_year <- aggregate(gdp_per_year$gdp_per_year, 
by=list(year=gdp_per_year$year), FUN=sum)

aggregate(gdp_per_year$gdp_per_year, 
by=list(gdp_per_year=gdp_per_year$year), FUN=sum)

print(total_gdp_per_year)

但这导致了一个错误

第二次尝试:

代码语言:javascript
复制
gdp_per_year %>% 
group_by(year) %>% 
summarise(gdp_per_year = sum(gdp_per_year))

我需要的是按相应年份分组的gdp_per_year值的总和。因此,在最后,我应该在几年内不会有重复输入值。gdp_per_year应该根据他们的年龄进行相应的总结。所有年份值都必须是唯一的。

This is the Error I receive by inputting this code below. There are multiple random values for gdp_per_year missing and there are duplicate values for same year. E.g, 1994 appearing more than once.

使用的代码给出了下面的错误1屏幕截图

代码语言:javascript
复制
gdp_per_year %>%
mutate(gdp_per_year = as.numeric(gsub(",", "", gdp_per_year))) %>%
group_by(year) %>%
summarise(gdp_per_year = sum(gdp_per_year))

运行dput的结果(head(Gdp_per_year))

代码语言:javascript
复制
structure(list(gdp_per_year = c("2156624900", "2156624900", "2156624900", 
"2156624900", "2156624900", "2156624900"), year = c(1987L, 1987L, 
1987L, 1987L, 1987L, 1987L)), row.names = c(NA, 6L), class = "data.frame")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-24 20:24:36

据我所知,你正面临着两个问题。首先,您必须将gdp_per_year转换为数字。这可以通过删除每个,,然后对结果使用as.numeric来完成。

其次,聚合可以使用dplyr完成,如您在第二次尝试中所示。

所以这是可行的:

代码语言:javascript
复制
gdp_per_year %>%
  mutate(gdp_per_year = as.numeric(gsub(",", "", gdp_per_year))) %>%
  group_by(year) %>%
  summarise(gdp_per_year = sum(gdp_per_year))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55828333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档