2016-06-27 5 views
0

Ich lese eine CSV-Datei mit zwei Spalten, die ein Datum mit Uhrzeit (Sekundenbruchteile) angeben. Das Format ist wie folgt: 2015-07-13 09: 05: 52.761, was ursprünglich ein Faktor war. Ich habe versucht, das Lesen der Spalte bei der Verwendung POSIXlt und einige Variationen dieser:Probleme beim Lesen der CSV-Spalte mit Sekundenbruchteilen im POSIX-Format

time_d$time_started_visit <- as.POSIXlt(time_d$time_started_visit, format="%Y-%m-%d %H:M%:%OS") 

All dies tat, war die Werte der Spalte NA konvertieren. Ich würde das gerne konvertieren, damit ich den zeitlichen Unterschied zwischen den beiden Spalten, irgendwelche Vorschläge, bekommen kann?

+0

Es scheint, Sie haben es geschafft, die Datei korrekt zu lesen, und Sie benötigen eine Möglichkeit, die Datetime-Spalte in das entsprechende Format zu konvertieren. Ist das richtig? – thepule

+0

Ja, das ist richtig. Ich habe Probleme beim Einlesen von Daten im Format: 2015-07-13 09: 05: 52.761 und wandle es in ein Format um, in dem ich den Unterschied in der Zeit finden kann. – user6484056

+0

Wenn die Spalte ursprünglich Faktoren enthält, stellen Sie sicher, dass Sie über "as.character" konvertieren, bevor Sie die as.POSIX-Funktion verwenden. – Dave2e

Antwort

0

Sie verwendet M% statt %M

# If you wish to retain the fractional seconds 
options(digits.secs = 3) 
as.POSIXlt(x, format="%Y-%m-%d %H:%M:%OS") 
+0

Vielen Dank! – user6484056

0

Sie hatte einen kleinen Fehler im Code:

nicht format="%Y-%m-%d %H:M%:%OS Verwenden Sie aber: format= "%Y-%m-%d %H:%M:%OS" Sie geändert %M und M%

Die ganze Code ist dann:

as.POSIXlt(temp$x, format= "%Y-%m-%d %H:%M:%OS")