Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.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 如何跨多个列对同一值进行分组并对后续值求和?_R_Group By_Tibble - Fatal编程技术网

R 如何跨多个列对同一值进行分组并对后续值求和?

R 如何跨多个列对同一值进行分组并对后续值求和?,r,group-by,tibble,R,Group By,Tibble,我有一个如下所示的信息表: rusher_full_name receiver_full_name rushing_fpts receiving_fpts <chr> <chr> <dbl> <dbl> 1 Aaron Jones NA 5 0 2 NA

我有一个如下所示的信息表:

  rusher_full_name  receiver_full_name rushing_fpts receiving_fpts
  <chr>             <chr>                     <dbl>          <dbl>
1 Aaron Jones       NA                          5              0  
2 NA                Aaron Jones                 0              5
3 Mike Davis        NA                          0.5            0
4 NA                Allen Robinson              0              3  
5 Mike Davis        NA                          0.7            0
rusher\u full\u name receiver\u full\u name rush\u fpts receiving\u fpts
1 Aaron Jones NA 5 0
2纳阿伦琼斯0 5
3迈克·戴维斯NA 0.5 0
4NA艾伦·罗宾逊03
5迈克·戴维斯NA 0.7 0
我想做的是根据rusher\u full\u名称和RECEINER\u full\u名称的值,从rusher\u FPT和RECEINER\u FPT中获取所有的值。例如,对于“Aaron Jones”的每个实例(无论是rusher_full_name还是receiver_full_name),将Rush_FPT和receiving_FPT的值相加

最后,我希望它是这样的:

  player_full_name    total_fpts
  <chr>                    <dbl>
1 Aaron Jones                 10  
2 Mike Davis                 1.2
3 Allen Robinson               3  
player\u full\u name总计\u fpts
1亚伦·琼斯10
2迈克·戴维斯1.2
艾伦·罗宾逊3
我对使用R非常陌生,在谷歌上搜索了很多东西,但找不到任何解决方案。关于如何做到这一点有什么建议吗

library(tidyverse)

df %>%
  mutate(player_full_name = coalesce(rusher_full_name, receiver_full_name)) %>%
  group_by(player_full_name) %>%
  summarise(total_fpts = sum(rushing_fpts+receiving_fpts))
输出

# A tibble: 3 x 2
  player_full_name total_fpts
  <chr>                 <dbl>
1 Aaron Jones            10  
2 Allen Robinson          3  
3 Mike Davis              1.2
#一个tible:3 x 2
玩家全名总FPT
1亚伦·琼斯10
2艾伦·罗宾逊3
3迈克·戴维斯1.2
数据

df <- data.frame(
  rusher_full_name = c("Aaron Jones", NA, "Mike Davis", NA, "Mike Davis"),
  receiver_full_name = c(NA, "Aaron Jones", NA, "Allen Robinson", NA),
  rushing_fpts = c(5,0,0.5,0,.7),
  receiving_fpts = c(0,5,0,3,0),
  stringsAsFactors = FALSE
)
df