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