r - 我无法汇总按年份 R 分组的记录值
问题描述
我有两列。第一列称为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 有多个随机值缺失,并且同一年有重复值。例如,1994 年不止一次出现。
使用的代码在下面出现错误 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")
解决方案
据我所知,您面临两个问题。首先,您必须转换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))
推荐阅读
- sql - 对于具有某些相同字段的多行,保留具有更新值的行,并标记其他行
- excel - 从文件中找到字符串后提取某些行
- reactjs - 同时使用 Fuse js 过滤多个列表
- javascript - 检查时间是否在特定时间范围内
- json - 链接器无法从 json-glib 中找到“get_int_member_with_default”
- azure - 如何在注册门户中为 Microsoft App 添加所有者?
- spring-boot - SpringBoot Aruba 邮件
- ios - 点击 MKMapView 时如何运行功能但点击 AnnotationView 时返回?
- windows - GetVersionEx 在 Windows 10 1903 上报告 12.2.18763
- java - 如何防止出现错误对话框?