【问题标题】:Aggregating data by two variables using R and dplyr使用 R 和 dplyr 通过两个变量聚合数据
【发布时间】:2016-03-22 16:45:10
【问题描述】:

我正在使用NFL play-by-play data from the 2013 season,我希望通过 Wide Receivers 测量捕获成功率。本质上,我有四个感兴趣的变量:目标接收器、传球距离、目标和接收。我想获得一个按目标接收器和传递距离细分的数据集,其中汇总了两个目标接收器和传递距离组合(即接收器 1 短,接收器 1 长)中的每一个的目标和接收(只是一个简单的计数)。

感谢您的帮助,

CLR

【问题讨论】:

标签: r dplyr summary


【解决方案1】:

首先,获取表格df 并仅保留相关的列(Targeted Receiver、Pass Distance、Target 和 Reception)。

df <- select(df, `Targeted Receiver`, `Pass Distance`, `Target`, `Reception`)

然后,删除没有接收器的行(例如正在运行的播放)。

df <- df[!is.na(df$`Targeted Receiver`), ]

之后,使用dplyr 中的group_by,以便您的数据在目标接收器和通过距离级别进行分组。

grouped <- group_by(df, `Targeted Receiver`, `Pass Distance`)

最后,使用summarise 函数创建Target 的计数和Reception 的总和。

per_rec <- summarise(grouped, Target = n(), Reception = sum(Reception))

数据将如下所示:

  Targeted Receiver Pass Distance Target Reception
              (chr)         (chr)  (int)     (dbl)
1        A.J. Green          Deep     50        21
2        A.J. Green         Short    128        77
3      A.J. Jenkins          Deep      6         2
4      A.J. Jenkins         Short     11         6
5      Aaron Dobson          Deep     23         6
6      Aaron Dobson         Short     49        31

【讨论】:

  • 请详细说明此代码如何回答问题(此答案在低质量帖子审核队列中)。
猜你喜欢
  • 1970-01-01
  • 2018-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-21
  • 1970-01-01
  • 2018-11-05
相关资源
最近更新 更多