Also, ich absolut saugen Schleifen (wenn Sie irgendwelche empfohlene Dokumentation zu üben mehr, lassen Sie es mich bitte wissen). Im Moment möchte ich jedoch den Zeitunterschied zwischen den Zeitstempeln für jede Instanz und der vorherigen Instanz berechnen (für einige 100.000 Instanzen). Zur Veranschaulichung (Datensatz 'Test'):For Schleife Zeit zwischen den Zeitstempeln zu berechnen
car name timestamp
1 2015-05-03 21:15:00
1 2015-05-03 21:45:00
1 2015-05-03 22:30:00
2 2015-05-04 05:45:00
2 2015-05-04 16:45:00
Der Zeitstempel ist im POSIXct-Format. Was ich erreichen möchte, ist, dass die Schleife für jedes Auto die Zeitdifferenz in Minuten mit der vorherigen Instanz berechnet, solange es das gleiche Auto ist. Also, würde Ich mag die folgenden Ergebnisse erhalten:
[1] N/A
[2] 30
[3] 45
[4] N/A
[5] 660
ich es geschafft, die Zeit zwischen zwei Instanzen mit berechnen:
difftime(test$timestamp[3],test$timestamp[(3-1)],units="mins")
begann ich es in einer Schleife Platzierung wie folgt:
for(i in test$timestamp){
minparked<-difftime(test$timestamp[i],test$timestamp[i-1],units="mins")
}
Aber dieses gibt mir Fehler, plus ich muss es sagen, um Zeitunterschied für die erste Reihe eines neuen Autos nicht zu berechnen (so Reihe [1] und [4] zum Beispiel).
Vielen Dank im Voraus für die Hilfe!
Dies scheint ein großartiger Fall für die Vermeidung einer Schleife. Gibt es einen Grund, warum du wirklich einen willst? – BenBarnes
Nopp! Ich dachte nur, es wäre der beste Weg ... aber wirklich glücklich, nicht einen zu benutzen! – zoekdestep