我有两栏。第一列称为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
应该与他们的年龄作相应的总结。所有年份的值必须唯一。
gdp_per_year %>%
mutate(gdp_per_year = as.numeric(gsub(",", "", gdp_per_year))) %>%
group_by(year) %>%
summarise(gdp_per_year = sum(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")
答案 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))