Simulation based on runif to get mean

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Simulation based on runif to get mean

R help mailing list-2
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]]

______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: Simulation based on runif to get mean

Daniel Nordlund-3
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]]
>
> ______________________________________________
> [hidden email] 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.
>

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.


Hope this is helpful,

Dan

--
Daniel Nordlund
Port Townsend, WA  USA

______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: Simulation based on runif to get mean

Rui Barradas
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,

Rui Barradas

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]]
>>
>> ______________________________________________
>> [hidden email] 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.
>>
>
> 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.
>
>
> Hope this is helpful,
>
> Dan
>

______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: Simulation based on runif to get mean

Eric Berger
Or a shorter version of Rui's approach:

set.seed(2511)    # Make the results reproducible
fun <- 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 <[hidden email]> 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,
>
> Rui Barradas
>
>
> 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]]
>>>
>>> ______________________________________________
>>> [hidden email] 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/posti
>>> ng-guide.html
>>> 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.
>>
>>
>> Hope this is helpful,
>>
>> Dan
>>
>>
> ______________________________________________
> [hidden email] 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/posti
> ng-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

        [[alternative HTML version deleted]]

______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: Simulation based on runif to get mean

Rui Barradas
In reply to this post by R help mailing list-2
Hello,
Right. Missed that one.
Rui Barradas


Enviado a partir do meu smartphone Samsung Galaxy.-------- Mensagem original --------De: Eric Berger <[hidden email]> Data: 30/01/2018  10:12  (GMT+00:00) Para: Rui Barradas <[hidden email]> Cc: Daniel Nordlund <[hidden email]>, smart hendsome <[hidden email]>, [hidden email] 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 <[hidden email]> 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,



Rui Barradas



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]]



______________________________________________

[hidden email] 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.






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.





Hope this is helpful,



Dan






______________________________________________

[hidden email] 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.


        [[alternative HTML version deleted]]

______________________________________________
[hidden email] 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.