[R] implicit loop for nested list
Jeff Newmiller
jdnewm|| @end|ng |rom dcn@d@v|@@c@@u@
Fri Jan 27 06:15:51 CET 2023
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_gurbuxani using 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 using 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.
More information about the R-help
mailing list