3

長さ約 100k のベクトルがあり、値は 0 から 1 で、地理的な場所での生息地の適合性を表しています。一部の値は非常に小さいですが、それらの多くは 0.9 などであるため、合計は 1 よりもはるかに大きくなります。

各サンプルの長さは 6 (置換なし) で、場所が選択される確率はその場所のベクトルの値によって重み付けされます。

以下ダミーデータ。何か案は?

mylocs = letters[1:10]
myprobs = c(0.1,NA,0.01,0.2,0.6,NA,0.001,0.03,0.9,NA)
mydata = data.frame(mylocs,myprobs)
4

1 に答える 1

4

私はあなたの質問に少し混乱しているので、ここに2つの可能な答えがあります。

グループが値を共有できる、6 つの値の 1000 グループをサンプリングする場合は、次のようにします。

locs = letters[1:15]
probs = c(0.1,NA,0.01,0.2,0.6,NA,0.001,0.03,0.9,NA, 0.1, 0.1, 0.1, 0.1, 0.1)
mydata = data.frame(locs,probs)

d = na.omit(mydata)
replicate(1000, sample(d$locs, size=6, prob=d$probs, replace=F))

グループが値を共有すべきでない場合は、次のようにします。

## Change the "2" to 1000 in the real data set
s = sample(d$locs, size=6*2, prob=d$probs, replace=F)
matrix(s, ncol=6)
于 2011-05-06T21:31:19.507 に答える