用于模拟概率分布的许多R
函数被矢量化。 ?rmultinom
说dmultinom
没有矢量化,因此我假设rmultinom
也没有。在一组概率中重复执行rmultinom
的最有效方法是什么?
例如:
p = matrix( c(0.1,0.2,0.3,0.4,0.2,0.3,0.4,0.1,0.3,0.4,0.2,0.1), ncol=4, nrow = 3, T)
p
是3 x 4
概率矩阵,每行总和为1。现在,目标是为每行创建n
size
个样本。为简单起见,请使用n=1
,size=1
,分类分发。
rmultinom(1,1,p)
提供12 x 1
矩阵。然而,期望的结果是4 x 3
矩阵,对于每个列,正好有1个元素等于1。
for
循环是可能的,但似乎效率低下。有没有更好的方法来实现这一点(对于大型矩阵p
)?