Try this: dat <- data.frame(x=11:14, pa=1:4/10, pb=4:1/10) f <- function(numreps, data){ pmat <- as.matrix(data[-1]) x <- data[,1] result <- matrix(0, nrow=numreps, ncol=ncol(pmat)) colnames(result) <- c("A", "B") for(i in seq_len(numreps)){ result[i,] <- apply(pmat, 2, function(p) sample(x, 1, prob=p)) } result } f(5, dat)
-Peter Ehlers Kelvin wrote:
Dear friends, If I have a table like this, first row A B C D ... are different levels of the variable, first column 0 1 2 4 ... are the levels of the "numbers", the numbers inside the table are the probabilities of the "number" occuring. A B C D ... 0 0.2 0.3 0.1 0.05 1 0.1 0.1 0.2 0.2 2 0.02 0.2 0 0.1 4 0.3 0.01 0.01 0.4 ... How can I use R to do the simulation and get a table like this, first row A B C D ... are different levels of the variable, the numbers inside the table are the "numbers" simulated from the probailties table above? A B C D ... 0 4 2 0 2 2 0 1 0 1 4 1 2 2 0 0 ... Thanks for help! Kelvin ______________________________________________ R-help@r-project.org mailing list 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.
-- Peter Ehlers University of Calgary 403.202.3921 ______________________________________________ R-help@r-project.org mailing list 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.