r والمحددات جمع الأعمدة في مصفوفة




ضرب المصفوفات pdf (2)

أريد إضافة أعمدة 1: أنا من مصفوفة للحصول على المجموع التراكمي لكل منهما. ومن ثم وضع النتائج في مصفوفة أخرى

وذلك مثل وجود:

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

نظريا يمكنك تحقيق ذلك عن طريق ضرب الحق من خلال المصفوفة المثلثة العليا منها (من حجم م - م، حيث المصفوفة الأصلية هي ن-بي-م)

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

> m<-matrix(rep(1:5,each=4),ncol=5)
> t(apply(m,1,cumsum))