[R] Simulation numbers from a probability table

Peter Ehlers ehlers at ucalgary.ca
Wed Jan 13 19:24:01 CET 2010


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



More information about the R-help mailing list