# [R] Simulation based on runif to get mean

Tue Jan 30 12:17:11 CET 2018

```Hello,
Right. Missed that one.

Enviado a partir do meu smartphone Samsung Galaxy.-------- Mensagem original --------De: Eric Berger <ericjberger at gmail.com> Data: 30/01/2018  10:12  (GMT+00:00) Para: Rui Barradas <ruipbarradas at sapo.pt> Cc: Daniel Nordlund <djnordlund at gmail.com>, smart hendsome <putra_autumn86 at yahoo.com>, r-help at r-project.org Assunto: Re: [R] Simulation based on runif to get mean
Or a shorter version of Rui's approach:
set.seed(2511)    # Make the results reproduciblefun <- function(n){  f <- function(){    c(mean(runif(5,1,10)),mean(runif(5,10,20)))  }  replicate(n, f())}fun(10)
On Tue, Jan 30, 2018 at 12:03 PM, Rui Barradas <ruipbarradas at sapo.pt> wrote:
Hello,

Another way would be to use ?replicate and ?colMeans.

set.seed(2511)    # Make the results reproducible

fun <- function(n){

f <- function(){

a <- runif(5, 1, 10)

b <- runif(5, 10, 20)

colMeans(cbind(a, b))

}

replicate(n, f())

}

fun(10)

Hope this helps,

On 1/30/2018 8:58 AM, Daniel Nordlund wrote:

On 1/29/2018 9:03 PM, smart hendsome via R-help wrote:

Hello everyone,

I have a question regarding simulating based on runif.  Let say I have generated matrix A and B based on runif. Then I find mean for each matrix A and matrix B.  I want this process to be done let say 10 times. Anyone can help me.  Actually I want make the function that I can play around with the number of simulation process that I want. Thanks.

Eg:

a <- matrix(runif(5,1, 10))

b <- matrix(runif(5,10, 20))

c <- cbind(a,b); c

mn <- apply(c,2,mean); mn

Regards,

Zuhri

[[alternative HTML version deleted]]

______________________________________________

R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see

https://stat.ethz.ch/mailman/listinfo/r-help

and provide commented, minimal, self-contained, reproducible code.

Here is a straight forward implementation of your code in a function with a parameter for the number simulations you want to run.

sim <- function(n){

mn <- matrix(0,n, 2)

for(i in 1:n) {

a <- runif(5,1, 10)

b <- runif(5,10, 20)

c <- cbind(a,b)

mn[i,] <- apply(c, 2, mean)

}

return(mn)

}

# run 10 iterations

sim(10)

In your case, there doesn't seem to be a need to create a and b as matrices; vectors work just as well.  Also, several of the statements could be combined into one.  Whether this meets your needs depends on what your real world task actually is.

Dan

______________________________________________

R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see

https://stat.ethz.ch/mailman/listinfo/r-help