[R] cbind question

Han, Hillary Hillary_Han at brown.edu
Sat Mar 27 22:25:45 CET 2004


Thanks very much. I used c, and got the two lists merged fine. I would like to write the results into a file. So used

> write.table(try, file = "try.txt")
Error in cbind(...) : cannot create a matrix from these types

Got into the same cbind error... Any suggestions? Thanks in advance.

code:
> > class(ll)
> [1] "list"
> > class(sym)
> [1] "list"
> > dim(sym)
> [1] 508   1
> > dim(ll)
> [1] 508   1
> try <- c(sym[1:5], ll[1:5])
> dim(try)
NULL
> dim(try)<- c(5, 2)
> try
     [,1]      [,2] 
[1,] "Slc40a1" 53945
[2,] "Rassf5"  54354
[3,] "Igfbp4"  16010
[4,] "Hmox1"   15368
[5,] "Cxcr4"   12767
> write.table(try, file = "try.txt")
Error in cbind(...) : cannot create a matrix from these types



-----Original Message-----
From:	Prof Brian Ripley [mailto:ripley at stats.ox.ac.uk]
Sent:	Sat 3/27/2004 3:30 PM
To:	Han, Hillary
Cc:	r-help at stat.math.ethz.ch
Subject:	Re: [R] cbind question
cbind on vectors/matrices which are not atomic is unsupported: we had a
bug report on that within the last 24 hours (but it seems to be
intentional).

You can just concatenate the lists and add a suitable dimension:

res <- c(ll, sym)
dim(res) <- c(508,2)

if I understand your intentions.

I think.  However, *why* do you want to do this?  A list of lists would 
seem to make more sense, and can be indexed in a similar way.


On Sat, 27 Mar 2004, Han, Hillary wrote:

> Just wonder if there is any suggestions in how to get around this cbind
> error. I created two character lists with identical length. First tried

What is a `character list'?

> combine the lists together with cbind, then convert the lists to matrix,
> and tried again. Both faied. Any fix to merge the two lists/matrices?

Merge?  That's what c() does.

> ll<- multiget(ftID, hgu95av2LOCUSID)
> > class(ll)
> [1] "list"
> > sym <- multiget(ftID, hgu95av2SYMBOL)
> > class(sym)
> [1] "list"
> > cbind(sym, ll)
> Error in cbind(...) : cannot create a matrix from these types
> > sym <- as.matrix(multiget(ftID, hgu95av2SYMBOL))
> > ll<- as.matrix(multiget(ftID, hgu95av2LOCUSID))
> > dim(sym)
> [1] 508   1
> > dim(ll)
> [1] 508   1
> > class(sym)
> [1] "matrix"
> > class(ll)
> [1] "matrix"
> > cbind(sym,ll)
> Error in cbind(...) : cannot create a matrix from these types

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595




More information about the R-help mailing list