我正在计算一些比赛中每一次的传球次数,并按团队进行总结。有几场比赛没有投篮。对于这个分析,我觉得更重要的是用1代替0,而不是忽略游戏。我该如何在R中做到这一点?这是我的代码。
match_df <- data.frame(TeamName = c("Team A", "Team A", "Team A", "Team B", "Team B", "Team B"), Passes = c(325,300,350,250,275,300), Shots = c(10,8,12,5,5,0))
overview <- match_df %>%
mutate(PassesPerShot = Passes / Shots) %>%
select(TeamName, PassesPerShot) %>%
group_by(TeamName) %>%
summarise(across(everything(), ~round(mean(.),digits = 1))) %>%
arrange(desc(PassesPerShot))发布于 2020-08-04 05:37:17
我们可以在1之前使用replace
library(dplyr)
match_df %>%
mutate(PassesPerShot = Passes / replace(Shots, Shots == 0, 1))发布于 2020-08-04 05:54:12
我不确定pmax的变通方法对您的情况是否有意义
within(match_df,PassesPerShot <- Passes/pmax(Shots,1))这样的话
> within(match_df,PassesPerShot <- Passes/pmax(Shots,1))
TeamName Passes Shots PassesPerShot
1 Team A 325 10 32.50000
2 Team A 300 8 37.50000
3 Team A 350 12 29.16667
4 Team B 250 5 50.00000
5 Team B 275 5 55.00000
6 Team B 300 0 300.00000https://stackoverflow.com/questions/63237258
复制相似问题