首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >除以零解决方法

除以零解决方法
EN

Stack Overflow用户
提问于 2020-08-04 05:35:08
回答 2查看 60关注 0票数 2

我正在计算一些比赛中每一次的传球次数,并按团队进行总结。有几场比赛没有投篮。对于这个分析,我觉得更重要的是用1代替0,而不是忽略游戏。我该如何在R中做到这一点?这是我的代码。

代码语言:javascript
复制
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))
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-04 05:37:17

我们可以在1之前使用replace

代码语言:javascript
复制
library(dplyr)
match_df %>% 
     mutate(PassesPerShot = Passes / replace(Shots, Shots == 0, 1))
票数 3
EN

Stack Overflow用户

发布于 2020-08-04 05:54:12

我不确定pmax的变通方法对您的情况是否有意义

代码语言:javascript
复制
within(match_df,PassesPerShot <- Passes/pmax(Shots,1))

这样的话

代码语言:javascript
复制
> 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.00000
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63237258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档