Hi all,

I was unable to find a solution to my problem in the archives, but this might 
be due to a lack knowledge on the correct terminology on my part. Please 
forgive me if this has been explained before and please forgive me my probably 
clumsy way of explaining things.

This is what I want to do:

I have a list made up of 6 lists containing 7  4x4 matrices each.
My goal is to select a large number of rows from all those matrices (thus 
giving vectors of length 4), and stack them into a matrix or data frame.
Creating a single such vector is easy using the normal extract functionality, 
say I want the 2nd row of the 5th matrix in the 3rd list, I use:
my.list[[3]] [[5]] [2, ]

Problem is, I need to get a matrix or data frame of about 8000 of these rows...

My idea was to create three vectors for each of the three indices, and put 
those vector names where the 3, 5 and 2 are in my example. I did something 
similar before with a 3-dimensional array, where you can use a matrix with 
dimensions [n,3] as an index to create a vector of length n. This, however, 
does not work with lists. I created a workaround using the lapply function 
(shown below) which works but is incredibly slow.

extract <- function (selector) {
        matrix.list[[selector[1]]][[selector[2]]][selector[3],]
}

output <- function(var1,var2,var3) {
        selector <-  as.data.frame(rbind(var1,var2,var3))
        stack <- do.call('rbind',lapply(selector,FUN=extract))
        stack
}


The object matix.list is the said object consisting of 6 lists containing 7 4x4 
matrices each. Var 1 2 and 3 are three vectors of length 8000.

My problem that, although this is working, it is really slow. The output is 
used in a monte carlo simulation with many iterations, so the function is 
called over and over again. What parts of this code are slowing it down the 
most, and how can I speed things up?

Thanks for all the help!

Cheers,
Gimon

  ________________________________
De inhoud van dit bericht is vertrouwelijk en alleen bes...{{dropped:15}}

______________________________________________
R-help@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.

Reply via email to