[R] moving dimnames when reassigning
Wiener, Matthew Charles
matthew_wiener at merck.com
Tue Oct 30 14:40:12 CET 2001
Hi, all.
I've got a question that arose when I was switching some row and columns in
a matrix. I was expecting the row and column names to follow their rows and
columns, and they didn't. I think I see some logic to the behavior, but I'm
not sure whether it's intentional or not, so I thought I'd ask the list
whether this is a feature or a bug.
Here's an example (R-1.3.1, same behavior under Windows NT and Linux). This
example uses a matrix, and switches columns. The same thing happens when
using data frames and when switching rows.
> t1 <- matrix(runif(25), 5, 5)
> dimnames(t1) <- list(letters[1:5], LETTERS[1:5])
> t1
A B C D E
a 0.8857528 0.1435165 0.44589190 0.1837626 0.000864055
b 0.1867816 0.8102641 0.97127777 0.8952994 0.151531510
c 0.1102591 0.4704422 0.04712121 0.2345568 0.535079125
d 0.7435725 0.7270509 0.49541471 0.3195482 0.892261212
e 0.7610705 0.6057041 0.73183485 0.9959111 0.176386124
>
> t1[,c(1,2)] <- t1[,c(2,1)]
> t1
A B C D E
a 0.1435165 0.8857528 0.44589190 0.1837626 0.000864055
The columns switched,
b 0.8102641 0.1867816 0.97127777 0.8952994 0.151531510 but the
column names
c 0.4704422 0.1102591 0.04712121 0.2345568 0.535079125 didn't.
d 0.7270509 0.7435725 0.49541471 0.3195482 0.892261212
e 0.6057041 0.7610705 0.73183485 0.9959111 0.176386124
>
> t1 <- t1[,c(2,1,3,4,5)]
>
> t1
B A C D E
a 0.8857528 0.1435165 0.44589190 0.1837626 0.000864055 The columns
and
b 0.1867816 0.8102641 0.97127777 0.8952994 0.151531510 column names
both
c 0.1102591 0.4704422 0.04712121 0.2345568 0.535079125 switched.
d 0.7435725 0.7270509 0.49541471 0.3195482 0.892261212
e 0.7610705 0.6057041 0.73183485 0.9959111 0.176386124
>
I was rearranging a matrix in the first way, and then found that the row and
column names hadn't followed along. Two workarounds are to permute the row
and column names separately (which is what I'm doing), or to construct
indices to do things the second way.
If this was a design decision, I'd like to understand the reason for it
better. If it's unintended, I'll turn this into a bug report.
Regards,
Matt Wiener
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
More information about the R-help
mailing list