ベクトルの要素を重みで引き出すために、多項分布からサンプリングしようとしています。
たとえば、ベクトルv <-c(10、30、60)が与えられた場合、次のようになります。[3、3、2、3、1、2、3、2、3、3]
これが私がこれまでに思いつくことができる最高のものです:
v <- c(10, 30, 60)
apply(rmultinom(10,1,v),2,function(x) which(x==1))
これは小さなNとKで問題なく機能しますが、実際には1〜100kのインデックスセットから100kのサンプルを生成する必要があります。これは、この方法ではNxKの一時行列が必要なため、明らかに機能しないためです。forループを使用することもできますが、これを行うための既存のメソッドがあることを期待していました。