在R中使用mutate()创建Totalpoints新变量的技术求助
计算篮球球队总得分的解决方案
看起来你已经完成了各得分类型的投篮频次统计,接下来用dplyr的mutate()来计算总得分非常直接,我会根据两种常见的数据格式给出具体方案:
情况1:宽格式数据集(每支球队一行,各得分频次为单独列)
假设你的数据集(比如命名为BasketballData)里有类似one_point(1分投篮次数)、two_point(2分投篮次数)、three_point(3分投篮次数)的列,直接在mutate()里按得分规则计算即可:
# 先确保加载dplyr包 library(dplyr) # 新增Totalpoints列计算总得分 BasketballData <- BasketballData %>% mutate( Totalpoints = (two_point * 2) + (three_point * 3) + (one_point * 1) )
如果你的列名是其他命名(比如freq_1、freq_2、freq_3),只需要把代码里的列名替换成你实际的列名就行。0分的频次可以直接忽略,因为0乘以任何数都不会影响总得分结果。
情况2:长格式数据集(每行对应一支球队的一种得分类型)
如果你的数据是长格式(比如每行包含team、points_value、freq三个字段),可以先按球队分组再汇总计算:
BasketballData <- BasketballData %>% group_by(team) %>% summarize( Totalpoints = sum(points_value * freq) ) %>% ungroup()
这种方式更灵活,不管有多少种得分类型,都能自动计算出每支球队的总得分。
小提示
- 运行代码前确认已经安装并加载了
dplyr包,如果没安装,先执行install.packages("dplyr")。 - 可以用
glimpse(BasketballData)查看数据集结构,确保列名和数据类型符合预期。
内容的提问来源于stack exchange,提问作者Scott Allen
相关产品推荐
相关产品推荐

