[R] Matrix and rownames problem

Marc Schwartz MSchwartz at MedAnalytics.com
Fri Dec 17 15:56:07 CET 2004


On Fri, 2004-12-17 at 14:34 +0000, Pat Meyer wrote:
> Hi,
> I'm quite new to R, so excuse me if this problem has a simple solution.

It does. It's in FAQ 7.5 "Why do my matrices lose dimensions?"

> I'm working with an array, lets say
> 
> i <- array(c(1:3,3:1), dim=c(3,2))
> 
> Then I want to give the rows and the columns names:
> 
> rownames(i)<-c("a","b","c")
> colnames(i)<-c("d","e")
> 
> The result is given below:
> 
>   d e
> a 1 3
> b 2 2
> c 3 1
> 
> Here comes my problem. When I'm taking a submatrix
> 
> j<-i[1,1:2]

If you just want the first row, you can use:

j <- i[1, ]

> the result should be (for me) an array of one line, and two colums. Here's 
> the result:
> 
> d e
> 1 3
> 
> When I want to access the rownames of j, it returns NULL. I want it to be 
> "a".
> 
> On the other side, if I take a submatrix 2x2, there is no problem.
> 
> In my problem, rownames(j) must return the name of the extracted row. So I 
> don't understand why a 1x2 array is not a normal array.
> 
> Could someone help me with this?
> 
> Thanx in advance,

As per the FAQ referenced above, use:

> j <- i[1, , drop = FALSE]

> j
  d e
a 1 3


HTH,

Marc Schwartz




More information about the R-help mailing list