将矩阵转换为R中的累积矩阵

时间:2013-09-06 09:53:18

标签: r matrix

在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?

这样做

1 个答案:

答案 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是您的原始矩阵。