Elegance is in the eyes of the beholder... extractor <- function( simlist, sim_name ) { do.call( cbind , lapply( simlist , function( r ) r[[ sim_name ]] ) ) } extractor( mysim, "two.mat" )
... but using do.call will be much more memory efficient than successive cbind operations. On January 26, 2023 7:33:25 PM PST, Naresh Gurbuxani <naresh_gurbux...@hotmail.com> wrote: >> >> I am looking for a more elegant way to write below code. >> >> #Simulation results have different dimensions >> mysim <- lapply(1:10, function(y) { >> two.mat <- matrix(rnorm(4), nrow = 2) >> four.mat <- matrix(rnorm(16), nrow = 4) >> list(two.mat = two.mat, four.mat = four.mat) #results with different >> dimensions >> }) >> >> #Collect different components of simulation results >> #Is it possible to do this with implicit loops? >> mat2 <- matrix(nrow = 2, ncol = 1) >> mat4 <- matrix(nrow = 4, ncol = 1) >> for (mat.list in mysim) { >> mat2 <- cbind(mat2, mat.list[["two.mat"]]) >> mat4 <- cbind(mat4, mat.list[["four.mat"]]) >> } >> mat2 <- mat2[,-1] >> mat4 <- mat4[,-1] > >______________________________________________ >R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >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. -- Sent from my phone. Please excuse my brevity. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.