【发布时间】:2020-04-16 23:10:19
【问题描述】:
R 新手,正在将其用于数据框中的一些 NFL 分析,其中相关列如下所示:
- 兰迪·莫斯 12.9 2000
- 兰迪·莫斯 21.6 2000
- 兰迪莫斯 4.0 2000
- 兰迪·莫斯 44.7 2000
- 兰迪·莫斯 25.8 2000
- 兰迪·莫斯 12.9 2000
这不是一个列表,它是一个数据框,其中玩家(“fname.1”)每场比赛的幻想统计数据(“fp3”)和比赛年份(“year”)是有问题的列。该数据包括 2000 年至 2019 年的所有年份。
我想添加一个列,该列是该玩家当年所有幻想结果的平均值。所以,我在示例数据中想要的输出(如果兰迪莫斯只玩了 6 场比赛)将为每个条目添加一列平均值,如下所示:
- 兰迪·莫斯 12.9 2000 16.98333
- 兰迪·莫斯 21.6 2000 16.98333
- 兰迪莫斯 4.0 2000 16.98333
- 兰迪·莫斯 44.7 2000 16.98333
- 兰迪·莫斯 25.8 2000 16.98333
- 兰迪·莫斯 12.9 2000 16.98333
我在使用简单的 group_by() 和 summarise() 公式时遇到了麻烦,因为每年每个玩家都需要不同的平均值。我写了一个 for 循环,它创建了一个包含我需要的信息的列表,但我不确定如何将它添加到原始数据中,或者是否有更简单的方法来完成这个......
mean_fantasy <- list()
for(y in 2000:2019) {
mean_fantasy[[y]] <- offense_test %>%
filter(year == y) %>%
group_by(fname.1) %>%
summarize(mean_fp3 = sum(fp3)/n(), games = n(), year = sum(year)/n())
}
对 R 和这个论坛非常陌生,所以希望这个问题/格式有意义
【问题讨论】:
标签: r