Ich habe einen Vektor "a" mit ganzzahligen Werten, von denen einige wegen anderer Teile des Codes 0 werden können, die ausgeführt werden. Ich möchte die Vorkommen von 0 in diesem Vektor durch eine zufällige Probe von einem anderen Vektor "b" ersetzen, den ich habe. Wenn es jedoch mehrere 0 Werte in "a" gibt, möchte ich sie zu allen verschiedenen Samples von "b". So zum Beispiel:Ersetzen bestimmter Werte im Vektor mit verschiedenen Proben von einem anderen Vektor
a <- c(1, 2, 3, 0, 0, 0)
b <- 1:100
ich die letzten drei 0-Werte von „a“ möchte mit zufälligen Werten in „b“ ersetzt werden, aber ich würde 1, 2 vermeiden möge, oder 3. Das ist schon in einem.
Derzeit verwende ich eine while-Schleife, so:
while(0 %in% a) {
s = sample(1, b)
while(s %in% a) {
s = sample(1, b)
}
a[a==0][1] = s
}
Gibt es einen besseren Weg, dies zu tun? Es sieht so aus, als würde diese doppelte while-Schleife sehr lange dauern.
Vielen Dank! Das ist so viel sauberer! – user5811685