我无法汇总按R年分组的记录值

时间:2019-04-24 10:50:49

标签: r dataframe dplyr statistics

我有两栏。第一列称为gdp_per_year,是该特定年份的GDP。 第二列是year。这是相应的年份。

gdp_per_year中的值采用1,032,023,232等格式,因此逗号用作千位分隔符。 我尝试了许多不同的方法来解决此问题,但到目前为止我仍无法弄清。我尝试了不同的代码以基于唯一值进行汇总和分组。我还从值中删除了,,并用.并将它们替换为空白。

我已经将值从字符转换为整数,但仍然无法正常工作。

gdp_per_year <-  Suicides %>% select(gdp_per_year, year)

将其转换为整数。

gdp_per_year$gdp_per_year <-             
as.integer(as.character(gdp_per_year$gdp_per_year))

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

typeof(gdp_per_year$gdp_per_year)

它是整数

第一次尝试:

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)

但这会导致错误

第二次尝试:

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屏幕截图时使用的代码

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))的结果

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")

1 个答案:

答案 0 :(得分:0)

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

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

所以这可以工作:

gdp_per_year %>%
  mutate(gdp_per_year = as.numeric(gsub(",", "", gdp_per_year))) %>%
  group_by(year) %>%
  summarise(gdp_per_year = sum(gdp_per_year))