在R中我有一个矩阵,说:
1 0 1 2 0 0 3
2 0 2 0 2 2 1
0 1 2 1 3 2 3
4 0 1 2 1 1 0
我想将此矩阵转换为累积版本,以便我得出矩阵:
1 1 2 4 4 4 7
2 2 4 4 6 8 9
0 1 3 4 7 9 12
4 4 5 7 8 9 9
因此,矩阵2中的[i,j]
条目是矩阵1中所有元素的总和,即i_1 <= i_2
。我怎么能在R?
答案 0 :(得分:4)
你可以这样做:
> t(apply(mat, 1, cumsum))
或
> ave(mat, row(mat), FUN = cumsum)
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 1 1 2 4 4 4 7
[2,] 2 2 4 4 6 8 9
[3,] 0 1 3 4 7 9 12
[4,] 4 4 5 7 8 9 9
其中mat
是您的原始矩阵。