2

サンプルコード

population <- 10000
vec <- sample(1:6, population, replace=T)    
output <- sample(1:vec, population, replace=T)

警告: 数式には 10000 個の要素があります: 最初に使用されたものだけです。

サンプルは、選択ごとにサンプルの制限を変更しようとしているため、1 回の反復では 1:2 の間でランダムにサンプリングし、別の反復では 1:6 の間でサンプリングする必要があります。最大値は「vec」で定義されます

「vec」の最大値への適切な参照を使用して、長さ 10,000 のベクトルとして「出力」を作成することを認識できるように、この行を構成する正しい方法は何ですか? 現在、「出力」の 10000 サンプルすべてに対して「vec」の最初の値のみを使用しています。

4

2 に答える 2

2

多分sapplyループオーバーに使用しますvec

out <- sapply(vec,sample,size = 1)
于 2013-04-23T18:28:26.540 に答える
0

別の方法: 列が異なる数値を使用したサンプルである行列を作成します。次に、各行から値をランダムに取得するベクトルを作成します。これはもっと速いかもしれないと思っていましたが、どちらの方法も非常に高速です。

population <- 1e4
samp.mat <- sapply(1:6,sample.int,size=population,replace=TRUE)
indices <- cbind(seq_len(nrow(samp.mat)),sample.int(6,nrow(samp.mat),replace=TRUE))
out <- a[indices]
于 2013-04-23T18:43:34.353 に答える