[R] cbind question
Prof Brian Ripley
ripley at stats.ox.ac.uk
Sat Mar 27 22:34:52 CET 2004
On Sat, 27 Mar 2004, Han, Hillary wrote:
> 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.
You don't have a table! Use write? (I don't know what is in your lists,
but they look like single-element vectors.)
>
> 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