2015-02-05 91 views
1

我没有正确的语言在R文档或Google上查找,因此我希望这里有人能帮助我。假设我有一个有两列的数据框。一列是独立观测的向量,我希望另一列是上述行中所有观测值的总和。我知道我能做到这一点与* pply功能,例如:向量化R函数用于求和上面的行

> 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 

但因为我要反复做,因为观测更新,我认为该代码会更快,更可靠的,只是如果我简单的清洁剂使用矢量化函数。有没有这样的事情?

+4

'cumsum'是累积和。 – Frank 2015-02-05 17:58:32

+0

@Frank感谢您的评论。我认为这会有点困难:-) – akrun 2015-02-05 18:03:07

回答

1

申请弗兰克的评论:

df$y <- cumsum(df$x) 
+0

完美。谢谢! – 2015-02-05 18:29:54