8
私は整数値を持つベクトル "a"を持っていますが、実行中のコードの他の部分のためにその一部が0になっている可能性があります。私はこのベクトルの0の出現を、私が持っている別のベクトル "b"のランダムなサンプルに置き換えたいと思います。しかし、 "a"に複数の値がある場合は、 "b"と異なるすべてのサンプルにしたいと思います。だから、例えば:ベクトル内の特定の値を別のベクトルの異なるサンプルに置き換えよう
a <- c(1, 2, 3, 0, 0, 0)
b <- 1:100
私は最後の3つの0「」「B」内のランダムな値に置き換えられるの値が、私は1を使用して避けたい、2、または3者を希望していますすでに。
現在、私は、whileループを使用しています:
while(0 %in% a) {
s = sample(1, b)
while(s %in% a) {
s = sample(1, b)
}
a[a==0][1] = s
}
これを行うには良い方法はありますか?ループの実行には長い時間がかかることがあります。
ありがとうございました!それはとても清潔です! – user5811685