函数功能
cumsum
是 R 语言 base 包 cum 系列的一个函数,它的功能是计算向量的累积和并返回。
cum 系列还有另外三个函数: cumprod
, cummin
, cummax
,它们的作用分别是计算向量的累积的乘积、极小值、极大值,并返回。
函数参数说明
cum 系列函数只有一个参数: cumsum(x)
, cumprod(x)
, cummin(x)
, cummax(x)
。
- 当使用
cumsum
或cumprod
时,x 可以是数值型(numeric)或复数型(complex)的向量、矩阵、数据框,因为数值型和复数型可做求和、求积。 - 当使用
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
参考资料
- ripeconan,《cumsum 函数介绍》,Hexo 博客