2016-05-04 27 views
1

Ich habe einen 4x2-Datenrahmen, in dem eine der Spalten DateTime-Stempel enthält. Die DateTime hat das folgende Format: %Y-%m-%d %H:%M:%S. Ich muss die DateTime als POSIXlt formatieren, und ich möchte nicht, dass Sekunden angezeigt werden. Der Code unter POSIXlt formatiert, aber irgendwie werden immer noch Sekunden angezeigt. Wie kann ich die Sekunden loswerden? Vielen Dank.Zeitformat in R ändern (POSIXlt)

DATS <- structure(list(DateTime = c("2016-04-25 23:59:00", "2016-04-25 23:58:00","2016-04-25 23:57:00", "2016-04-25 23:56:00"), Last = c(42.84,42.84, 42.85, 42.85)), .Names = c("DateTime", "Last"), row.names = c(NA,4L), class = "data.frame") 
DATS$DateTime <- strptime(DATS$DateTime, format = "%Y-%m-%d %H:%M") 

#Output for DATS after running code 
       DateTime Last 
1 2016-04-25 23:59:00 42.84 
2 2016-04-25 23:58:00 42.84 
3 2016-04-25 23:57:00 42.85 
4 2016-04-25 23:56:00 42.85 
+4

Einfache Antwort, Sie nicht. Wenn Sie sie als POSIXlt-Objekte haben möchten, enthält das auch Sekunden. – thelatemail

+3

Sie können verwenden: Format (DATS $ DateTime, Format = "% Y-% M-% D% H:% M"), aber dies wird von POSIX in Zeichen konvertieren. Was in Ordnung ist, wenn Sie nur Bedenken haben, ist das Aussehen der Ausgabe. – Dave2e

+0

Gracos, fragen Sie, wie Sie die Daten anzeigen, ohne Sekunden anzuzeigen, oder fragen Sie, wie Sie die Daten ohne Sekunden speichern? Subtiler, aber wichtiger Unterschied. Sie könnten beispielsweise eine R-Klasse erstellen und eine Anzeigefunktion für die Daten schreiben, die die Sekunden auslassen. Alternativ können Sie einfach 'sprintf()' verwenden, um die formatierte Ausgabe der DATS-Struktur anzuzeigen. – Technophobe01

Antwort

1

Da andere geantwortet haben, müssen die Sekunden enthalten sein. Als Beispiel ist zu beachten, wenn ich entfernen „:% S“ und die Sekunden von 00 auf verschiedene Nummern ändern, werden die Sekunden noch enthalten, aber abgerundet auf 00.

DATS <- structure(list(DateTime = c("2016-04-25 23:59:15", "2016-04-25 23:58:30","2016-04-25 23:57:45", "2016-04-25 23:56:59"), Last = c(42.84,42.84, 42.85, 42.85)), .Names = c("DateTime", "Last"), row.names = c(NA,4L), class = "data.frame") 

DATS$DateTime <- strptime(DATS$DateTime, format = "%Y-%m-%d %H:%M:%S") 
DATS 

   DateTime Last 
1 2016-04-25 23:59:15 42.84 
2 2016-04-25 23:58:30 42.84 
3 2016-04-25 23:57:45 42.85 
4 2016-04-25 23:56:59 42.85 

DATS$DateTime <- strptime(DATS$DateTime, format = "%Y-%m-%d %H:%M") 
DATS 

   DateTime Last 
1 2016-04-25 23:59:00 42.84 
2 2016-04-25 23:58:00 42.84 
3 2016-04-25 23:57:00 42.85 
4 2016-04-25 23:56:00 42.85