1
我有以下问题:
我有4袋20个值在每个当中,并且我随机从各4袋挑10的样品:重新样品
for (i in 1:20){
bag1[i] = sample(0:50,1)
bag2[i] = sample(0:50,1)
bag3[i] = sample(0:50,1)
bag4[i] = sample(0:50,1)
}
for (j in 1:10){
samp=sample(1:20,1)
bag1value=bag1value+bag1[samp]
bag2value=bag2value+bag2[samp]
bag3value=bag3value+bag3[samp]
bag4value=bag4value+bag4[samp]
}
现在,我想再次从第一个样本中具有最大值值的包中抽取10个值。所以我可以这样做:
maxbag=max(bag1value,bag2value,bag3value,bag4value)
if (maxbag==bag1value){
for (j1 in 1:10){
samp=sample(1:20,1)
secondsample=secondsample+bag1[samp]
} elseif (maxbag==bag2value){
samp=sample(1:20,1)
secondsample=secondsample+bag2[samp]
}
但我正在寻找一个更优雅的方式来做到这一点。
非常感谢!但是,当我抽样时,我怎么能这样做,我为每个袋子使用相同的“行”?例如,我决定采样行[3],新样本的输出将是(14,48,26,10)。 – YefR
行李在列中,而不是行。你可以用样品(袋子[,“bag1”],10)来说样品“bag1”。' –
当选择第二个样品时,这个代码在“tie”的情况下可能有问题。为了避免这个问题,我想我们应该写:secondsample < - sample(bags [,max.bag [1]],10)或max.bag <-max.bag [sample(1)]。 – YefR