Ändern Datum-Zeit-format in R
Ich habe eine Tabelle mit zwei Spalten "start" und "Ende", die sowohl die Termine und Zeiten der jeweiligen start-und end-Zeit wie folgt:
Sr. No. Start End
1 22May2001:00:00:00 27May2001:23:59:59
2 28May2001:00:00:00 26Jun2001:23:59:59
Ich würde gerne konvertieren oben Datum, die Uhrzeit im folgenden format (nach ISO8601 mit Zeitstempel):
Sr. No. Start End
1 2001-05-22 00:00:00 2001-05-27 23:59:59
2 2001-05-28 00:00:00 2001-06-26 23:59:59
Ich habe den code unter diesem link verfügbar: http://www.stat.berkeley.edu/~s133/dates.html
View(my_table)
str(my_table)
my_table$startD <- as.Date(my_table$start, "%d%b%Y:%H:%M:%S")
my_table$startT <- strptime(my_table$start, format = "%d%b%Y:%H:%M:%S")
So weit, mein Versuch hat mir zwei Spalten wie diese:
StartD StartT
2001-05-22 2001-05-22
Ist nicht wünschenswert. Könnte bitte jemand mir empfehlen, um zu konvertieren das Datum bzw. die Uhrzeit im gewünschten format durch die oben genannten oder einen anderen Ansatz?
Sie brauchen einen datetime-Klasse (d.h. POSIXct oder POSIXlt). Können Sie analysieren mit
als.Datum wandelt nur das Datum und nicht die Zeit. Versuchen: meine_tabelle$startD <- wie.POSIXct(my_table$start, "%d%b%Y:%H:%M:%S")
Als ich versuchte zu verwenden ".POSIXct()". Ich habe einen Fehler festgestellt: Fehler bei als.POSIXlt.Charakter(als.Zeichen(x), ...) : Zeichenfolge ist nicht in einem standard-eindeutig-format. Vielen Dank für Ihre Hilfe sowieso.
Sie müssen angeben, dass der parameter-name:
as.POSIXct
oder strptime
z.B. library(dplyr) ; df %>% mutate_at(-1, as.POSIXct, format = '%d%b%Y:%H:%M:%S')
oder den Gegenwert. Hinweis: der Druck für beide um Mitternacht lässt die Zeit Teil, aber es ist immer noch gespeichert.als.Datum wandelt nur das Datum und nicht die Zeit. Versuchen: meine_tabelle$startD <- wie.POSIXct(my_table$start, "%d%b%Y:%H:%M:%S")
Als ich versuchte zu verwenden ".POSIXct()". Ich habe einen Fehler festgestellt: Fehler bei als.POSIXlt.Charakter(als.Zeichen(x), ...) : Zeichenfolge ist nicht in einem standard-eindeutig-format. Vielen Dank für Ihre Hilfe sowieso.
Sie müssen angeben, dass der parameter-name:
format = "%d%b%Y:%H:%M:%S"
, denn sonst übernimmt das Parsen der Zeichenfolge ist der zweite parameter, der für die Einstellung der Zeitzone.
InformationsquelleAutor khajlk | 2016-07-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Im Antwort-Formular für Klarheit, benötigen Sie ein datetime-Klasse, die in R bedeutet entweder POSIXct oder POSIXlt. In der Regel verwenden wir
as.POSIXct
undstrptime
zum Parsen von strings in jeder Klasse, bzw. (as.POSIXlt
vorhanden, aber wird selten verwendet), aber es gibt lubridate alternativen, wenn Sie möchten.In seiner einfachsten
Hinweis: Sie müssen geben Sie den Namen des
format
string, als zweiten parameter vonas.POSIXct
ist eigentlichtz
(für die Einstellung der Zeitzone). Beachten Sie auch, dass währendStart
wie es aussieht, fehlt einem die Zeit, das ist, weil die print-Methoden für POSIX*t nicht drucken, mal um Mitternacht, aber Sie sind immer noch gespeichert.Wenn Sie möchten, ändern Sie beide in einer einzigen Zeile, die Sie nutzen könnten
oder in dplyr (die lieber POSIXct über POSIXlt):
beide zurück genau das gleiche. Sie können auch
lubridate::dmy_hms
, welche analysiert, um POSIXct:die auch das gleiche zurückgeben.
Daten
InformationsquelleAutor alistaire
Hoffe, das hilft.
format
.InformationsquelleAutor Trigs