[R] creating lists of random matrices

Rui Barradas ruipbarradas at sapo.pt
Wed Nov 9 19:43:52 CET 2016


Try using ?lapply, its return value is a list. Note however that the 
*apply functions are loops in disguise. There's nothing wrong with your 
solution to the problem, but it's true that most R users find lapply 
more elegant, like you say.

hold <- lapply(1:5, function(x) matrix(rnorm(4),2,2) )

Hope this helps,

Rui Barradas

Em 09-11-2016 18:32, Evan Cooch escreveu:
> So, its easy enough to create a random matrix, using something like (say)
> matrix(rnorm(4),2,2)
> which generates a (2x2) matrix with random N(0,1) in each cell.
> But, what I need to be able to do is create a 'list' of such random
> matrices, where the length of the list (i.e., the number of said random
> matrices I store in the list) is some variable I can pass to the
> function (or loop).
> I tried the obvious like
> hold <- list()
> for (i in 1:5) {
>      hold[[i]] <- matrix(rnorm(4),2,2)
>      }
> While this works, it seems inelegant, and I'm wondering if there is a
> better (more efficient) way to accomplish the same thing -- perhaps
> avoiding the loop.
> Thanks in advance...
> ______________________________________________
> R-help at 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.

More information about the R-help mailing list