我希望按照绘制的方式进行矢量化。假设我有一个泊松参数值向量,对于每个参数,我想绘制1个样本。有没有办法在没有循环的情况下做到这一点?
答案 0 :(得分:2)
您需要为每个函数参数指定向量以获取向量结果:
> rpois(rep(1,4), lambda = c(1,10,100,1000))
[1] 0 12 88 1031
关于第一个参数,请参阅the documentation:
对于rpois,结果的长度由n确定,并且是其他函数的数值参数的最大长度。
除n之外的数值参数再循环到结果的长度。仅使用逻辑参数的第一个元素。
如果您需要在每个级别进行多次抽奖,那么您必须mapply
(或Vectorize
)此功能:
> mapply(rpois, rep(4,4), lambda = c(1,10,100,1000))
[,1] [,2] [,3] [,4]
[1,] 0 8 78 1016
[2,] 0 10 106 1044
[3,] 1 14 97 1004
[4,] 0 13 94 983