Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R基于保留NA值的两个索引列对两列中的值求和_R_Dataframe - Fatal编程技术网

R基于保留NA值的两个索引列对两列中的值求和

R基于保留NA值的两个索引列对两列中的值求和,r,dataframe,R,Dataframe,我有一个数据集,包括每年和每个国家按年龄组细分的自杀人数和人口,包括一些国家/年的NA值 我想对每年和每个国家不同年龄组的自杀人数和人口进行汇总,但如果某个国家没有某一年的数据,我就离开NA 输入如下所示: country = c("Albania", "Albania", "Croatia", "Croatia", "Croatia", "Croatia") year = c

我有一个数据集,包括每年和每个国家按年龄组细分的自杀人数和人口,包括一些国家/年的NA值

我想对每年和每个国家不同年龄组的自杀人数和人口进行汇总,但如果某个国家没有某一年的数据,我就离开NA

输入如下所示:

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