# [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?
>

As per the FAQ referenced above, use:

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

> j
d e
a 1 3

HTH,

Marc Schwartz

```