[R] creating matrices from lists
David Winsemius
dwinsemius at comcast.net
Tue Sep 21 04:28:19 CEST 2010
On Sep 20, 2010, at 10:12 PM, Gregory Ryslik wrote:
> Hi,
>
> I have a list of 5 main elements where each main element has 247
> atomic entries either 0 or 1. I need to get this into a 247x5 matrix
> so I do "do.call(cbind, mylist)". However, it renumbers 0 to a 1
> and the 1 to a 2 so that my matrix is filled with 1's and 2's.
>
If I had such a problem I would see if this were more effective:
matrix(unlist(mylist), length(mylist[[1]]) )
(There is the column major order default of R matrices.)
> I understand I can fix it in this case by doing a replace but I
> would like to avoid that step. Further, sometimes, my list entries
> will be from 0 to n. I don't want to have to always renumber all the
> possibilities.
>
> I'm not quite sure why this is going on because when I build the
> following: l <- list(c(1,2,3),c(1,2,3),c(1,2,3))
> and execute do.call(cbind, l) it works just fine and there is no
> renumbering!
I wouldn't have expected it either, but you only provided an example
of what did work. My attempt at reproducing your problem also failed:
> ll <- list(a=c(1,0,1,1,0), b=c(0,1,0,0,1) )
> do.call(cbind, ll)
a b
[1,] 1 0
[2,] 0 1
[3,] 1 0
[4,] 1 0
[5,] 0 1
I am wondering if you are dealing with factors and have not looked at
your "list" with str(). Haven't tried my method above to see what
would happen in tat instance.
>
> Thanks,
> Greg
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
David Winsemius, MD
West Hartford, CT
More information about the R-help
mailing list