Schleife Ich möchte die folgende Schleife auf eine effiziente Weise ausführen, wie ich dies auf Millionen von Zeilen durchführen muss. BeispieldatenSchnelle und effiziente Möglichkeit, unter Code in R
a <- data.frame(x1=rep(c('a','b','c','d'),5),
x2=c(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5),
value1=c(rep(201,4),rep(202,4),rep(203,4),rep(204,4),rep(205,4)),
y1=c(rep('a',4),rep('b',4),rep('c',4),rep('d',4),rep('e',4)),
y2=c(1,2,3,4,2,3,4,5,3,4,5,6,4,5,6,7,5,6,7,8),
value2=seq(101,120), stringsAsFactors = FALSE)
ich unten schrieb Ähnliche Werte zwischen zwei Spalten zu vergleichen und dann den Unterschied finden.
for (i in 1:length(a$x1)){
for (j in 1:length(a$x1)){
if(a$y1[i] == a$x1[j] & a$y2[i] == a$x2[j]){
a$diff[i] <- a$value1[j] - a$value2[i]
break
}
}
}
ich einige Probleme, zu verstehen, was die erwartete Ausgabe sein sollte, und ich vermute, dass es Probleme in Ihrer For-Schleife gibt. Können Sie Ihre Frage bearbeiten, um zu zeigen, wie die Ausgabespalte "diff" in Ihrem Beispiel aussehen soll? –
Sind Sie sicher, dass das von Ihnen angegebene Beispiel korrekt ist? zum Beispiel wenn ich = 15 – Wen
Ich verpasste Break-Anweisung, die ich jetzt bearbeitet habe. Danke für das Aufzeigen. – Lufy