R基于保留NA值的两个索引列对两列中的值求和
我有一个数据集,包括每年和每个国家按年龄组细分的自杀人数和人口,包括一些国家/年的NA值 我想对每年和每个国家不同年龄组的自杀人数和人口进行汇总,但如果某个国家没有某一年的数据,我就离开NA 输入如下所示:R基于保留NA值的两个索引列对两列中的值求和,r,dataframe,R,Dataframe,我有一个数据集,包括每年和每个国家按年龄组细分的自杀人数和人口,包括一些国家/年的NA值 我想对每年和每个国家不同年龄组的自杀人数和人口进行汇总,但如果某个国家没有某一年的数据,我就离开NA 输入如下所示: country = c("Albania", "Albania", "Croatia", "Croatia", "Croatia", "Croatia") year = c
country = c("Albania", "Albania", "Croatia", "Croatia", "Croatia", "Croatia")
year = c("1991", "1991", "1991", "1991", "1992", "1992"
suicides_no = c(NA, NA, 5, 3, 12, 9)
population = c(100, 200, 50, 75, 250, 300)
df = data.frame(country, year, suicides_no, population
输出列将是:
country year suicides_no population
Albania 1991 NA 300
Croatia 1991 8 125
Croatia 1992 21 550
按国家、年份分组并运行组摘要,如下所示
df %>%
group_by(country,year) %>%
summarize(suicides_no_sum = sum(suicides_no), population_sum = sum(population))
应提供:
country year suicides_no_sum population_sum
<chr> <chr> <dbl> <dbl>
1 Albania 1991 NA 300
2 Croatia 1991 8 125
3 Croatia 1992 21 550
国家年自杀人数人数
1阿尔巴尼亚1991 NA 300
2克罗地亚1991 8 125
3克罗地亚1992 21550
使用跨功能:
library(dplyr)
df <- df %>% group_by(country, year) %>% summarise(across(suicides_no:population, sum))
`summarise()` regrouping output by 'country' (override with `.groups` argument)
df
# A tibble: 3 x 4
# Groups: country [2]
country year suicides_no population
<chr> <chr> <dbl> <dbl>
1 Albania 1991 NA 300
2 Croatia 1991 8 125
3 Croatia 1992 21 550
库(dplyr)
df%按(国家,年份)分组%>%总结(跨越(自杀人数:人口,总和))
`summary()`按'country'重新分组输出(用'.groups'参数覆盖)
df
#一个tibble:3x4
#分组:国家[2]
国家年自杀人数
1阿尔巴尼亚1991 NA 300
2克罗地亚1991 8 125
3克罗地亚1992 21550
你好,谢谢Jinesh。这只给了我一行输出,在人口中表示NA和no。还有,我如何将其保存到我现有的数据帧中?@engelbrekt只需将结果分配给我们的数据帧,df=df%>%group\u by……嘿,这不起作用我的数据帧现在只是“data.frame”:1 obs。共有两个变量:$sequences\u no\u sum:num NA$population\u sum:num 975