[R] Write columns from within a list to a matrix?

jrg66 at comcast.net jrg66 at comcast.net
Sun Jul 22 21:39:26 CEST 2007


Hello,

I think I have a mental block when it comes to working with lists.  lapply and sapply appear to do some magical things, but I can't seem to master their usage.

As an example, I would like to convert a column within a list to a matrix, with the list element corresponding to the new matrix column.

#Here is a simplified example: .
test=vector("list", 3)
for (i in 1:3){ test[[i]]=cbind(runif(15), rnorm(15,2)) }  #create example list (I'm sure there is a better way to do this too).

#Now, I wan to get the second column back out, converting it from a list to a matrix.  This works, but gets confusing/inefficient when I have multiple complex lists I am trying to manage.

savecol2=matrix(0,15,0)
for (i in 1:3){
savecol2=cbind(savecol2, test[[i]][,1])
} 

#Something like??:  (of course this doesn't work)
savecol2=sapply(test, "[[", function(x) x[2,])     

Thank you!

Jeff



More information about the R-help mailing list