【发布时间】:2015-08-06 17:19:49
【问题描述】:
假设我们有以下df:
df
V1 V2
1 .50
2 .30
3 .27
4 .59
5 .34
6 .23
7 .56
8 .78
9 .23
现在我想创建一个列 V3,使其对应于以前值的平均值。
简而言之,例如,V3[3]=.40 将是 (V2[1] + V2[2] / 2 ) = (.5 + .3)/2。
如何使用 dplyr 或纯 R 进行该操作?如何使用 data.frame 中的顺序来执行操作?
我在问一些变异函数。
我在纯 R 中尝试了这段代码,但它看起来效率不高:
df$V3 <- NA
for (i in 1:nrow(df)) {
df$V3[i] <- mean(df$V2[1:(i-1)])
}
提前致谢。
【问题讨论】: