【发布时间】:2017-04-15 16:03:10
【问题描述】:
我有一个大型数据集(>100,000 行),并想创建一个新列来汇总另一列的所有先前值。
对于具有 100,000 行和 2 列的模拟数据集 test.data,我创建了一个新向量,它将第 2 列的内容与:
sapply(1:100000, function(x) sum(test.data[1:x[1],2]))
我稍后用cbind()将此向量附加到test.table,但这太慢了。有没有更快的方法来实现这一点,或者能够引用 sapply 在 sapply 中生成的向量,这样我就可以更新累积和而不是再次执行整个计算?
【问题讨论】:
-
你尝试过 merge()
-
你考虑过直接使用 cumsum 创建它吗?
-
类似
test.data$sum <- cumsum(test.data[,2])? -
@MikeH。这样可行!非常感谢。
标签: r