矢量化R函数,用于对上面的行求和

时间:2015-02-05 17:56:30

标签: r dataframe vectorization

我没有正确的语言在R文档或Google上查找,所以我希望有人可以帮助我。假设我有一个包含两列的数据框。一列是独立观测的矢量,我希望另一列是上面行中所有观测值的总和。我知道我可以用* pply函数来做到这一点,例如:

> df <- data.frame(x=runif(5), y=0)
> df
          x y
1 0.4068298 0
2 0.9352350 0
3 0.3918638 0
4 0.2925178 0
5 0.1949071 0
> df$y <- sapply(X = 1:5, FUN = function(i) sum(df$x[1:i]))
> df
          x         y
1 0.4068298 0.4068298
2 0.9352350 1.3420647
3 0.3918638 1.7339285
4 0.2925178 2.0264462
5 0.1949071 2.2213534

但是由于观察更新后我必须反复这样做,我认为如果使用矢量化函数,代码会更快,更可靠,而且更简洁。有什么类似的吗?

1 个答案:

答案 0 :(得分:1)

申请弗兰克的评论:

df$y <- cumsum(df$x)