I have written a function x <- function() ...
that generates random numbers according to a distribution I'd like to study.
> x()
[1] 0.8947771
> x()
[1] 0.4478619
I can generate a list of 10 random numbers using x
via a for loop:
> s <- c()
> for(i in 1:10) s <- c(s,x())
> s
[1] 0.6035317 0.4556456 0.6063270 0.4567958 0.5805186 0.7688124 0.6722493
[8] 0.3908357 0.4513608 0.2747064
However, this seems clumsy. I would like to know: is there a better way to create such a list?
There are some succinct ways of generating lists numbers in R, such as (1:10)^2
(which generates squares) and runif(10,0,1)
(which generates uniformly random numbers between 0 and 1), rnorm(10)
(which generates normal-distributed numbers) but I can't seem to get it to work in my case: x(1:10)
returns Error in x(1:10) : unused argument(s) (1:10)
.
Try using replicate
replicate(10, x())
Also note that you are in Circle 2, read R inferno
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With