[R] matrix from list
Greg.Snow at imail.org
Fri Apr 25 17:07:30 CEST 2008
You may want to read the help page for '[' and '[[' a few more times
(the differencese can be subtle).
The '[[' only returns a single element from a data structure (but in the
case of a list, that single element can be quite complex). So something
like list[[1:2]] does not make sense because you are asking something
that returns 1 thing to return 2. You can do list[1:2] which will
return a list consisting of the 1st 2 elements of the original list. If
you list happens to be a data frame as well, then you can subset it like
a matrix: mydf[1:2, 3:4] gives the 1st 2 rows of columns 3 and 4,
mydf[,1:2] gives the first 2 columns. These will continue to be data
frames (since '[' returns the same type of object), but tools like
as.matrix can convert this into a matrix.
Gregory (Greg) L. Snow Ph.D.
Statistical Data Center
greg.snow at imail.org
> -----Original Message-----
> From: r-help-bounces at r-project.org
> [mailto:r-help-bounces at r-project.org] On Behalf Of Olivier Lefevre
> Sent: Thursday, April 24, 2008 4:16 PM
> To: r-help at stat.math.ethz.ch
> Subject: Re: [R] matrix from list
> Yes, unlist is the magic wand I was looking for. Thanks a million!
> Having said that, I find it rather arbitrary that you can
> write mat[1:4] but not list[[1:2]]; IMO there should be no
> need for a "magic" operator like unlist:
> list[[1:length(list)]] could do the job.
> -- O.L.
> R-help at r-project.org mailing list
> PLEASE do read the posting guide
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help