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

______________________________________________
R-help@r-project.org 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 via email to