Ich habe vier VektorenR: Optimieren Index weise Vergleiche, die auf anderen Vektoren abhängen
x, y, z, w
length(x) = length(y) = length(z) = length(w) = 5000
und ich möchte folgendes tun:
Nehmen Sie den Vektor ‚w‘ und durch jeden Index laufen ' i 'von 1 bis 5000. Suchen Sie für jeden Index' i 'den Index' j 'in' x ', der y [i] am nächsten ist. Dann nimm den Index 'j' und vergleiche, ob w [i]> z [j] für alle i und j (i) .... mit j (i), ich meine, dass j von i abhängt.
Ich möchte nur wissen, ob das stimmt oder nicht, ich möchte nicht die entsprechenden Is und Js berechnen.
Ich habe diese Prozedur mit einer for-Schleife angepasst, und ich benutze which.min, um den Index 'j' zu finden. Das ist sehr langsam. Wie zu optimieren?
Beispiel:
z <- c(1,2,3,4,5)
w <- c(2,3,2,5,5)
x <- c(200,300,400,500,600)
y <- c(300,300,200,500,600)
So, basierend auf oben, haben wir die folgenden 5 Vergleiche:
w[1] > z[2] (because y[1] is closest to x[2])
w[2] > z[2] (because y[2] is closest to x[2])
w[3] < z[1] (because y[3] is closest to x[1])
Beachten Sie, dass wir jetzt schon wissen, w [i] nicht größer ist streng als z [j], damit wir hier aufhören können. Ausgabe sollte dann
"FALSE"