【发布时间】:2021-04-17 11:34:03
【问题描述】:
我有以下数据框,其中包含游戏 ID、玩家、动作类型(例如传球或运球)以及动作是成功还是失败。
df1 <- data.frame(
game_id = c("1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "2", "2", "2", "2", "2",
"2", "2", "2", "2", "2"),
player = c("X", "X", "X", "Y", "Y", "Z", "Z", "X", "Y", "Z", "Y", "Y", "Y", "X", "X", "Z",
"Z", "X", "Z", "X"),
type = c("pass", "pass", "pass", "pass", "pass", "dribble", "dribble", 'tackle', "pass",
"pass", "dribble", "pass", "dribble", "pass", "pass", "pass", "pass", "dribble",
"pass", "pass"),
result = c("success", "success", "fail", "success", "success", "success", "fail", "success",
"fail", "success", "success", "fail", "fail", "success", "success", "fail", "fail",
"success", "success", "success")
)
df1
# game_id player type result
#1 1 X pass success
#2 1 X pass success
#3 1 X pass fail
#4 1 Y pass success
#5 1 Y pass success
#6 1 Z dribble success
#7 1 Z dribble fail
#8 1 X tackle success
#9 1 Y pass fail
#10 1 Z pass success
#11 2 Y dribble success
#12 2 Y pass fail
#13 2 Y dribble fail
#14 2 X pass success
#15 2 X pass success
#16 2 Z pass fail
#17 2 Z pass fail
#18 2 X dribble success
#19 2 Z pass success
#20 2 X pass success
我想做的是创建一些新列:
- 第一列包含玩家在独特比赛中的每一次传球(无论传球失败还是成功)
- 第二列包含玩家在一场独特的比赛中给出的每个 SUCCESS 通行证
- 第三列显示每个球员在比赛中的成功率(因此球员的成功传球次数/球员传球总数)
最终的数据框应如下所示:
df2 <- data.frame(
game_id = c(1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2),
player = c("X", "X", "X", "Y", "Y", "Z", "Z", "X", "Y", "Z", "Y", "Y", "Y", "X", "X", "Z",
"Z", "X", "Z", "X"),
type = c("pass", "pass", "pass", "pass", "pass", "dribble", "dribble", 'tackle', "pass",
"pass","dribble", "pass", "dribble", "pass", "pass", "pass", "pass", "dribble",
"pass", "pass"),
result = c("success", "success", "fail", "success", "success", "success", "fail", "success",
"fail", "success", "success", "fail", "fail", "success", "success", "fail", "fail",
"success", "success", "success"),
pass_per_player = c(1,2,3,1,2,0,0,3,3,1,0,1,1,1,2,1,2,2,3,3),
success_pass_player = c(1,2,2,1,2,0,0,2,2,1,0,0,0,1,2,0,0,2,1,3),
#success_rate_player = c(1,1,0.66,1,1,0,0,0.66,0.66,1,0,0,0,1,1,0,0,1,0.33,1)
)
df2
# game_id player type result pass_per_player success_pass_player success_rate_player
#1 1 X pass success 1 1 1.00
#2 1 X pass success 2 2 1.00
#3 1 X pass fail 3 2 0.66
#4 1 Y pass success 1 1 1.00
#5 1 Y pass success 2 2 1.00
#6 1 Z dribble success 0 0 0.00
#7 1 Z dribble fail 0 0 0.00
#8 1 X tackle success 3 2 0.66
#9 1 Y pass fail 3 2 0.66
#10 1 Z pass success 1 1 1.00
#11 2 Y dribble success 0 0 0.00
#12 2 Y pass fail 1 0 0.00
#13 2 Y dribble fail 1 0 0.00
#14 2 X pass success 1 1 1.00
#15 2 X pass success 2 2 1.00
#16 2 Z pass fail 1 0 0.00
#17 2 Z pass fail 2 0 0.00
#18 2 X dribble success 2 2 1.00
#19 2 Z pass success 3 1 0.33
#20 2 X pass success 3 3 1.00
【问题讨论】:
标签: r