[R] ROWNAMES error message

Marc Schwartz (via MN) mschwartz at mn.rr.com
Tue Mar 21 20:42:28 CET 2006


On Tue, 2006-03-21 at 14:26 -0500, mark salsburg wrote:
> I am getting an error message, which I do not know the source to.
> 
> I have a matrix SAMPLES that has preexisting rownames that I would like to
> change.

SAMPLES is not a matrix, it is a data frame, as your output shows below.

> GENE_NAMES contains these rownames.
> 
> 
> > rownames(SAMPLES) = GENE_NAMES
> Error in "dimnames<-.data.frame"(`*tmp*`, value = list(list(V1 = c(3843,  :
>         invalid 'dimnames' given for data frame
> > dim(SAMPLES)
> [1] 12626    20
> > dim(GENE_NAMES)
> [1] 12626     1
> > is.data.frame(SAMPLES)
> [1] TRUE
> > is.data.frame(GENE_NAMES)
> [1] TRUE
> 
> I have tried converting GENE_NAMES to a factor, R will not allow me because
> its says "x must be atomic"
> 
> ANY IDEAS??

GENE_NAMES is presumably a data frame with a single column. You need to
properly access the single column by name or index and use that as the
RHS of the assignment. So something like one the following should work:

  rownames(SAMPLES) <- GENE_NAMES$V1

or 

  rownames(SAMPLES) <- GENE_NAMES[, 1]

Use:

  str(GENE_NAMES)

which will display the structure of GENE_NAMES.

'atomic' means that the data in question is one of the primary data
types defined for R. See ?is.atomic for more information.

HTH,

Marc Schwartz




More information about the R-help mailing list