跳转至

R 函数 | cumsum 函数笔记

函数功能

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

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

函数参数说明

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

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

函数返回值说明

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

函数使用示例

  • 对数值型向量求和
> cumsum(1:10)
 [1]  1  3  6 10 15 21 28 36 45 55
  • 对数值型矩阵求和,结果返回仍是向量
> cumsum(matrix(1:12, nrow = 3))
 [1]  1  3  6 10 15 21 28 36 45 55 66 78
  • 对数据框求和,返回结果仍然是数据框,cumsum 会对对每个变量进行求和处理
> cumsum(data.frame(a = 1:10, b = 21:30))
    a   b
1   1  21
2   3  43
3   6  66
4  10  90
5  15 115
6  21 141
7  28 168
8  36 196
9  45 225
10 55 255
  • 对复数型向量,可以求积
> x <- c(1 + 2i, 2 - 3i, 5 + 10i);
> x
[1] 1+ 2i 2- 3i 5+10i
> cumprod(x)
[1]  1+ 2i  8+ 1i 30+85i
  • 对数值型向量求 min
> cummin(c(3, 2, 5, 1, 4))
[1] 3 2 2 1 1
  • 对数据框,每个变量分别求 max
> cummax(data.frame(a = c(3,2,5,1,4), b = c(1,8,3,6,5)))
  a b
1 3 1
2 3 8
3 5 8
4 5 8
5 5 8

参考资料