我想添加第1列:矩阵的i来获得每个的累积总和。然后将结果放在另一个矩阵中
所以喜欢:
matrix
[,1] [,2] [,3] [,4] [,5]
[1,] A B C D E
[2,] F G H I J
[3,] K L M N O
[4,] P Q R S T
成为:
newmatrix
[,1] [,2] [,3] [,4] [,5]
[1,] A A+B A+B+C A+B+C+D A+B+C+D+E
[2,] F F+G F+G+H F+G+H+I F+G+H+I+J
[3,] K K+L K+L+M K+L+M+N K+L+M+N+O
[4,] P P+Q P+Q+R P+Q+R+S P+Q+R+S+T
答案 0 :(得分:5)
> m<-matrix(rep(1:5,each=4),ncol=5)
> t(apply(m,1,cumsum))
答案 1 :(得分:0)
从理论上讲,你可以通过右上乘一个上三角矩阵(大小为m-by-m,其中原始矩阵是n-by-m)来实现这一目的。
| A B C D | | 1 1 1 1 | | A A+B A+B+C A+B+C+D |
| E F G H | * | 0 1 1 1 | = | E E+F E+F+G E+F+G+H |
| I J K L | | 0 0 1 1 | | I I+J I+J+K I+J+K+L |
| 0 0 0 1 |
或
| A B C D E | | 1 1 1 1 1 | | A A+B A+B+C A+B+C+D A+B+C+D+E |
| F G H I J | | 0 1 1 1 1 | | F F+G F+G+H F+G+H+I F+G+H+I+J |
| K L M N O | * | 0 0 1 1 1 | = | K K+L K+L+M K+L+M+N K+L+M+N+O |
| P Q R S T | | 0 0 0 1 1 | | P P+Q P+Q+R P+Q+R+S P+Q+R+S+T |
| 0 0 0 0 1 |