我在 R 中找到了很多关于条件累积和的问题和答案,但到目前为止,我所看到的所有问题和答案都涉及对单个变量进行条件求和。
我想要做的是概括条件和公式,以便它可以在多个列中循环。我有一个包含历史 NFL 比赛数据的巨大数据框(大约 2500 行 x 136 列)。每个团队赛季有 16 行,每场比赛大约有 130 个变量。
我想计算每个统计类别的逐周(年初至今)累积平均值,最终目的是计算每支球队相对于整个联盟的每周 z 分数。
这是一个使用ddply
为单个变量完成此任务的包的示例(在本例中为进攻性第二节得分):
ddply(test.data, "TeamSeason", transform, Cum.Mean = cumsum(O2QPt) / Week)
如何在不使用for
循环的情况下遍历所有统计类别列?如果我必须使用for
循环,有没有办法通过数字 ID 而不是标签来引用列?
下面的代码让我非常接近我想去的地方。感谢 Max Ghenis为我指明了正确的方向。
testdata.dt[order(UGID)][, lapply(.SD, cumsum), by="TeamSeason", .SDcols=numerics]
然而,虽然数据以正确的 UGID(唯一游戏 ID)顺序列出,但 UGID 值并未输出。如何在输出中包含此列,以便跟踪表中的游戏 ID?