[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