[R] better loop for simulation
Duncan Murdoch
murdoch.duncan at gmail.com
Sun Jun 19 01:24:49 CEST 2016
On 18/06/2016 6:12 PM, Naresh Gurbuxani wrote:
> I want to calculate a function many times over. My solution below works, but does not seem very elegant.
>
> # my function to run many times over
> stud.score <- function(n.questions, mult.choice = 2) {
> prob.success <- 1 / mult.choice
> answers <- (runif(n.questions) < prob.success)
> return(sum(answers))
> }
>
> # my method to run above function 1000 times and store results
> count.df <- data.frame(n.count = rep(10, 1000))
> scores.df <- apply(count.df, 1, function(x) return(stud.score(x)))
>
> Creating a data frame just to repeat the the count seems wasteful. How can I generate scores.df without count.df?
>
> Thanks,
You don't need a data frame or a loop at all. You're simulating
binomial values, and R has rbinom() to do that in a vectorized way.
Duncan
More information about the R-help
mailing list