Ich muss durch einen Datenrahmen durchlaufen, lesen Sie den Wert von drei Spalten (2 Zeitstempel und 1 Etikett). Dann muss ich für diese Reihe von drei Werten mit jeder Reihe eines zweiten Datenrahmens vergleichen, um zu sehen, ob A) die Markierung übereinstimmt und B) der Zeitstempel, der im zweiten Datenrahmen ist, zwischen den zwei Zeitstempeln der aktuellen Reihe liegt. Wenn die Zeile tatsächlich diese beiden Kriterien erfüllt, sollte sie zur weiteren Verarbeitung in einem Datenrahmen/Vektor gespeichert werden.Für jede Zeile in einem Datenrahmen, Schleife durch einen anderen Datenrahmen
Ich habe viele Versionen der Funktion x_apply in Kombination mit einer for-Schleife (für die 'zweite' Iteration) ausprobiert. Im Folgenden ist eine sehr vereinfachte Version meines Problems, wo ich zwei kleine Datenframes erstellen und versuchen, die erforderliche Schleife einzurichten. Der Wert sollte in 'x' gespeichert werden - und während dieser Wert angezeigt wird, wenn ich (x) in der Schleife drucke, wird 'x' als NULL angegeben, nachdem die Anwendungsfunktion abgeschlossen ist. Es scheint jedes Mal zurückgesetzt zu werden, wenn die Funktion aufgerufen wird. Unter Berücksichtigung meiner Anforderungen, haben Sie Ideen für einen anderen/besseren Ansatz? Ich bin nicht verpflichtet, per se anzuwenden. Vielen Dank im Voraus!
Update: Ein Beispiel mit Zeitangaben, was zu dem Fehler "Erwarte einen einzelnen Wert" für mich führt.
label <- c("p1", "p1", "p2")
value_1 <- c(as.POSIXct(1482645600, origin="1970-01-01"),as.POSIXct(1482745600, origin="1970-01-01"),as.POSIXct(1482845600, origin="1970-01-01"))
value_2 <- c(as.POSIXct(1582645600, origin="1970-01-01"),as.POSIXct(1582745600, origin="1970-01-01"),as.POSIXct(1582845600, origin="1970-01-01"))
df1 <- data.frame(label, value_1, value_2)
label <- c("p1", "p2", "p2")
value_3 <- c(as.POSIXct(1582645100, origin="1970-01-01"),as.POSIXct(1582745200, origin="1970-01-01"),as.POSIXct(1582845300, origin="1970-01-01"))
df2 <- data.frame(label, value_3)
df_merge = merge(df1, df2, c("label"), suffixes = c(".df1",".df2"))
setDT(df_merge)
str(df_merge)
a <- df_merge[between(value_3, value_1, value_2), ]
merge zuerst und dann wenden Sie Ihre Reichweitenbedingungen an! –