Bogaso Christofer
2011-Feb-02 11:22 UTC
[R] How column names/row names are preserved in matrix calculation?
Can somebody tell me that, if I do some arithmetic calculation over 2 matrices then how the column names and row names are preserved? It seems that, for multiplication, column names and row names of the 2nd matrix are preserved and for additional, there seems not having any explicit rule:> set.seed(1)> dat1 <- matrix(rnorm(25), 5); colnames(dat1) = rownames(dat1) paste("mat1", 1:5, sep="")> dat2 <- matrix(rnorm(25), 5); colnames(dat2) = rownames(dat2) paste("mat2", 1:5, sep="")> dat3 <- matrix(rnorm(25), 5); colnames(dat3) = rownames(dat3) paste("mat3", 1:5, sep="")> dat1mat11 mat12 mat13 mat14 mat15 mat11 -0.6264538 -0.8204684 1.5117812 -0.04493361 0.91897737 mat12 0.1836433 0.4874291 0.3898432 -0.01619026 0.78213630 mat13 -0.8356286 0.7383247 -0.6212406 0.94383621 0.07456498 mat14 1.5952808 0.5757814 -2.2146999 0.82122120 -1.98935170 mat15 0.3295078 -0.3053884 1.1249309 0.59390132 0.61982575> dat2mat21 mat22 mat23 mat24 mat25 mat21 -0.05612874 1.35867955 -0.4149946 -0.1645236 -0.7074952 mat22 -0.15579551 -0.10278773 -0.3942900 -0.2533617 0.3645820 mat23 -1.47075238 0.38767161 -0.0593134 0.6969634 0.7685329 mat24 -0.47815006 -0.05380504 1.1000254 0.5566632 -0.1123462 mat25 0.41794156 -1.37705956 0.7631757 -0.6887557 0.8811077> dat1 %*% dat2 + dat3mat21 mat22 mat23 mat24 mat25 mat11 -1.2567987 0.5365897 3.5473394 0.89542630 2.5962144 mat12 -0.9370075 -1.0928568 0.2483355 -2.23467503 0.3284073 mat13 0.7665543 -2.6496778 1.8774045 1.45703219 0.9533289 mat14 0.7245671 4.5147054 -1.3445549 0.02866729 -5.3999956 mat15 -0.2173109 -0.1053570 0.3000135 2.88350373 -0.2541405 Can somebody finalize me what is the **rule** for preserving column names and row names for matrix arithmatics? Thanks, [[alternative HTML version deleted]]