函数功能

cumsum 是 R 语言 base 包 cum 系列的一个函数,它的功能是计算向量的累积和并返回。

cum 系列还有另外三个函数: cumprodcummincummax ,它们的作用分别是计算向量的累积的乘积、极小值、极大值,并返回。

函数参数说明

cum 系列函数只有一个参数: cumsum(x)cumprod(x)cummin(x)cummax(x)

  1. 当使用 cumsumcumprod 时,x 可以是数值型(numeric)或复数型(complex)的向量、矩阵、数据框,因为数值型和复数型可做求和、求积。
  2. 当使用 cummincummax 时,x 只能是数值型的向量、矩阵、数据框。

函数返回值说明

当 x 是向量、矩阵时,cum 系列函数返回的是向量,因为矩阵的本质也是向量;当 x 是数据框时,返回值则仍为数据框。

函数使用示例

  • 对数值型向量求和
    1. > cumsum(1:10)
    2. [1] 1 3 6 10 15 21 28 36 45 55
  • 对数值型矩阵求和,结果返回仍是向量

    1. > cumsum(matrix(1:12, nrow = 3))
    2. [1] 1 3 6 10 15 21 28 36 45 55 66 78
  • 对数据框求和,返回结果仍然是数据框,cumsum 会对对每个变量进行求和处理

    1. > cumsum(data.frame(a = 1:10, b = 21:30))
    2. a b
    3. 1 1 21
    4. 2 3 43
    5. 3 6 66
    6. 4 10 90
    7. 5 15 115
    8. 6 21 141
    9. 7 28 168
    10. 8 36 196
    11. 9 45 225
    12. 10 55 255
  • 对复数型向量,可以求积

    1. > x <- c(1 + 2i, 2 - 3i, 5 + 10i);
    2. > x
    3. [1] 1+ 2i 2- 3i 5+10i
    4. > cumprod(x)
    5. [1] 1+ 2i 8+ 1i 30+85i
  • 对数值型向量求 min

    1. > cummin(c(3, 2, 5, 1, 4))
    2. [1] 3 2 2 1 1
  • 对数据框,每个变量分别求 max

    1. > cummax(data.frame(a = c(3,2,5,1,4), b = c(1,8,3,6,5)))
    2. a b
    3. 1 3 1
    4. 2 3 8
    5. 3 5 8
    6. 4 5 8
    7. 5 5 8

参考资料