[R] matrix of random variables from a matrix of means and matrix of sd

Rui Barradas ruipbarradas at sapo.pt
Fri May 24 22:54:22 CEST 2013


Hello,

The first instruction doesn't call rnorm just once but it seems more 
appropriate for your problem;
The second instruction calls rnorm just once.


set.seed(59187)
res1 <- replicate(10, matrix(rnorm(4, mean = a, sd = b), ncol = 2))

set.seed(59187)
res2 <- array(rnorm(40, mean = a, sd = b), dim = c(2, 2, 10))

identical(res1, res2)  # TRUE


Hope this helps,

Rui Barradas

Em 24-05-2013 20:22, M M escreveu:
> folks,
> if i have a matrix of means:
> a <- matrix(1:4, 2)
> and a matrix of std deviations:
> b <- matrix(5:8, 2)
> and i want to create a matrix X of random variates such that X[i, j] is a draw from normal distribution with mean = a[i, j] and std dev =  b[i, j], i think i can do this?
> X <- matrix(rnorm(4, mean = a, sd = b), ncol = 2)
> now if I want to create 10 such matrices, I could possibly do this:
> lapply(1:10, function(x) matrix(rnorm(4, mean = a, sd = b), ncol = 2))
> is there a better way to do this with perhaps just one call to the rnorm() function?
> cheers,
> murali 		 	   		
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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.
>



More information about the R-help mailing list