如何在同一数据集中新增列累加某列的历史行值?
解决R中生成累加列的问题
嗨,这个需求其实用R内置的cumsum()函数就能完美搞定,操作超简单!
首先先还原你的初始数据集生成代码:
x <- 1:8 y <- c(2,7,1,3,5,4,1,2) data <- data.frame(x,y)
接下来只需要一行代码就能生成你要的z列——它会自动对y列进行累积求和(也就是累加所有历史行的值):
data$z <- cumsum(data$y)
运行之后查看data,就得到了你想要的结果:
x y z 1 1 2 2 2 2 7 9 3 3 1 10 4 4 3 13 5 5 5 18 6 6 4 22 7 7 1 23 8 8 2 25
简单解释下:cumsum()函数的作用就是按顺序计算向量的累积和,每一个位置的值都是从第一个元素到当前元素的总和,完全匹配你“累加y列所有历史行值”的要求。
内容的提问来源于stack exchange,提问作者cronos
相关产品推荐
相关产品推荐

