Das erste df enthält die Werte der Temperaturmessungen alle 30 Minuten für 2 Monate von Sensoren an verschiedenen Orten. Sieht ungefähr so aus:Unterteilen Sie einen Datenrahmen nach Datetime (POSIXlt) -Werten mit Datetime (POSIXtl) -Werten von einem anderen Datenrahmen in R
date_time id Temp
2012-02-27 00:11:00 | Sens_1 | 23.0
2012-02-27 00:11:30 | Sens_1 | 23.4
2012-02-27 00:12:00 | Sens_1 | 24.6
2012-02-27 00:12:30 | Sens_1 | 25.2
2012-02-27 00:13:00 | Sens_1 | 25.5
2012-02-27 00:13:30 | Sens_1 | 26.3
: : :
2012-02-27 00:11:00 | Sens_2 | 34.6
2012-02-27 00:11:30 | Sens_2 | 33.4
2012-02-27 00:12:00 | Sens_2 | 34.6
2012-02-27 00:12:30 | Sens_2 | 35.4
2012-02-27 00:13:00 | Sens_2 | 36.5
2012-02-27 00:13:30 | Sens_2 | 38.8
: : :
2012-02-27 00:11:00 | Sens_3 | 14.6
2012-02-27 00:11:30 | Sens_3 | 14.4
2012-02-27 00:12:00 | Sens_3 | 13.6
2012-02-27 00:12:30 | Sens_3 | 15.4
2012-02-27 00:13:00 | Sens_3 | 15.5
2012-02-27 00:13:30 | Sens_3 | 16.8
: : :
Die zweite df hat nur eine Spalte mit den Datums- und Uhrzeitwerten, die zuvor aufgrund anderer Constraints gefiltert wurden und haben so nur einen Teil der Datums- und Uhrzeitwerte. Zum Beispiel:
date_time
2012-02-27 00:11:00
2012-02-27 00:12:00
2012-02-27 00:12:30
2012-02-27 00:13:30
:
Was ich bekommen will, ist so etwas wie diese:
date_time id Temp
2012-02-27 00:11:00 | Sens_1 | 23.0
2012-02-27 00:12:00 | Sens_1 | 24.6
2012-02-27 00:12:30 | Sens_1 | 25.2
2012-02-27 00:13:30 | Sens_1 | 26.3
: : :
2012-02-27 00:11:00 | Sens_2 | 34.6
2012-02-27 00:12:00 | Sens_2 | 34.6
2012-02-27 00:12:30 | Sens_2 | 35.4
2012-02-27 00:13:30 | Sens_2 | 38.8
: : :
2012-02-27 00:11:00 | Sens_3 | 14.6
2012-02-27 00:12:00 | Sens_3 | 13.6
2012-02-27 00:12:30 | Sens_3 | 15.4
2012-02-27 00:13:30 | Sens_3 | 16.8
: : :
Vielen Dank im Voraus für jede Hilfe.
'merge (df1, df2)' – Gregor
'do.call (rbind, lapply (geteilt (df1, df1 $ id), Funktion (x) x [x $ date_time% in% df2 $ date_time,]))' –
Vielen Dank für Ihre schnelle Antworten db Antwort funktioniert gut @Gregor: 'merge' hat nicht funktioniert und wirft diesen Fehler: Fehler in sort.list (bx [m $ xi]): 'x' muss atomar sein für ' sort.list ' Haben Sie' sort 'auf einer Liste aufgerufen? Es wird angenommen, dass es sich bei den Daten nicht um einen data.frame, sondern um eine Liste handelt. Ich versuchte 'str' in beiden df und sagt dies: 'str (sens) ' data.frame ': \t 3342 obs. von 3 var $ id: chr "Sens_1" .. $ fechahora: POSIXlt, Format: "2014-01-01 00:00:00" .. $ valor: num 22.3 .. ' – NewUser