ddiscrete(x, probs, values=1:length(probs)) pdiscrete(q, probs, values=1:length(probs)) qdiscrete(p, probs, values=1:length(probs)) rdiscrete(n, probs, values=1:length(probs), method="inverse", aliasmatrix=NULL)
x,q
| vector or array of quantiles. |
p
| vector or array of probabilites. |
n
| number of observations. |
probs
| probabilities of the distribution. |
values
| values of the distribution. |
method
| generation method, can be "inverse" or "alias" |
aliasmatrix
| matrix needed by alias method |
values
is proportional
to the values given in probs
, which are normalized tp sum up to
1. ddiscrete
gives the density, pdiscrete
gives the
distribution function, qdiscrete
gives the quantile function and
rdiscrete
generates random deviates.
For the generation of the random deviates, one can choose between the
method "inverse" which basically makes a lookup in the vector of the
probabilities and the method "alias". The later method computes an
aliasmatrix by the function aliasmat
which allows a faster data
generation once this matrix is computed. If such a matrix has already
been computed, it can be passed as further argument to rdiscrete
.
# a vector of length 30 whose elements are 1 with probability 0.2 and 2 # with probability 0.8. rdiscrete (30, c(0.2, 0.8)) # a vector of length 100 whose elements are A, B, C, D. # The probabilities of the four values have the relation 1:2:3:3 rdiscrete (100, c(1,2,3,3), c("A","B","C","D"))