r - 是否有一个 R 函数可以根据其他两个变量给我一个值的总和?
问题描述
我有一个 NBA 球员数据集和他们的表现统计数据,例如比赛场次、每个赛季的得分等。我有每个球员的多个赛季和一个列Season.End,它表示数据的来源年份。G列表示为该特定赛季进行的比赛。
Season.End Player Pos Age Tm G GS MP PER OWS DWS WS
<int> <chr> <fct> <int> <fct> <int> <int> <int> <dbl> <chr> <dbl> <chr>
1 2001 A.C. ~ PF 37 MIA 82 1 1411 11.2 1.1 2.1 3.2
2 2002 A.J. ~ PG 23 CHI 45 6 607 11.8 0 0 0.1
3 2001 A.J. ~ PG 22 CHI 33 8 630 10.3 0.4 -0.1 0.3
4 2003 A.J. ~ PG 24 GSW 2 0 9 -9 -0.1 0 -0.1
5 2017 A.J. ~ C 24 DAL 22 0 163 8.4 -0.2 0.2 0
6 2013 A.J. ~ PG 26 WAS 57 22 1278 12.4 1 1.2 2.2
7 2010 A.J. ~ PG 23 IND 56 2 865 14 0.4 0.8 1.2
8 2011 A.J. ~ PG 24 IND 50 0 795 10.7 -0.4 0.7 0.3
9 2012 A.J. ~ PG 25 IND 44 1 568 11.5 0.2 0.5 0.7
10 2014 A.J. ~ SG 27 MIN 28 0 99 9.7 -0.1 0 0
我想添加一个列,总结一个球员在前几个赛季打过的比赛数量,所以在赛季之前。理想情况下,它看起来像这样:
Season.End Player Pos Age Tm G total_games
2001 A.J. PG 22 CHI 33 0
2002 A.J. PG 23 CHI 45 33
2003 A.J. PG 24 GSW 2 78
2014 B.K. C 27 HOU 50 0
2015 B.K. C 28 HOU 74 50
2016 B.K. C 29 HOU 66 124
我尝试了使用 dplyr 函数的多种变体,例如 group_by、summarise 等,并考虑将我的 Season.End 列转换为日期格式,但我从未设法获得所需的结果。
有人可以解决我的问题吗?
解决方案
您首先将数据分组Player
,然后Season
使用排序arrange
。包含游戏运行总和的新列使用 计算cumsum
并添加到record
with mutate
。c(0,head(cumsum(G),-1) )
用于显示玩家第一年的 0,然后使用head(cumsum(G) ,-1)
除最后一个之外的游戏的运行总和跟随它。
我已经修改了示例输入数据,使其看起来更像您的示例输出。代码如下所示:
record <- tribble(
~Season_End, ~Player, ~Pos, ~Age, ~G,
2001, "A.C.", "PF", 37, 82,
2002, "A.J.", "PG", 23, 45,
2001, "A.J.", "PG", 22, 33,
2003, "A.J.", "PG", 24, 2,
2017, "B.K.", "C", 24, 22,
2013, "B.K.", "PG", 26, 57,
2010, "B.K.", "PG", 23, 56 )
record <- record %>% group_by(Player) %>%
arrange( Season_End) %>%
mutate(total_games = c(0,head(cumsum(G),-1) ))
这给出了结果
Season_End Player Pos Age G total_games
<dbl> <chr> <chr> <dbl> <dbl> <dbl>
1 2001 A.C. PF 37 82 0
2 2001 A.J. PG 22 33 0
3 2002 A.J. PG 23 45 33
4 2003 A.J. PG 24 2 78
5 2010 B.K. PG 23 56 0
6 2013 B.K. PG 26 57 56
7 2017 B.K. C 24 22 113
推荐阅读
- python - Pygame 在按键时移动物体
- apache-flink - Apache Flink - CoFlatMapFunction 不按事件时间顺序处理事件
- go - Gorilla/schema 是否原生支持 `json` 反射标签?
- android - 为什么 TextInput 上的 onKeyPress 在 React Native (Android) 中不起作用?
- javascript - 设置状态后反应日期数组不更新
- javascript - .each 循环期间未显示 Div 类更改
- javascript - js xml响应返回未定义
- c# - 如何使用 C# 在 Discord 中创建用户欢迎消息
- elixir - 无法在 postgresql 10 中打开 Citext 的扩展控制文件
- amazon-web-services - 无法从 Amazon S3 获取数据到 EC2 进行训练