Skip to content

Matrix and rownames problem

3 messages · Pat Meyer, John Fox, Marc Schwartz

#
Hi,
I'm quite new to R, so excuse me if this problem has a simple solution.

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]

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,

Patrick
#
Dear Patrick,

By default, when indexing returns an array dimension of 1, the corresponding
coordinate is dropped. Try  j <- i[1, 1:2, drop=FALSE], and see ?"[".

I hope this helps,
 John
#
On Fri, 2004-12-17 at 14:34 +0000, Pat Meyer wrote:
It does. It's in FAQ 7.5 "Why do my matrices lose dimensions?"
If you just want the first row, you can use:

j <- i[1, ]
As per the FAQ referenced above, use:
d e
a 1 3


HTH,

Marc Schwartz