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.

Reply via email to