5 Stimmen

Umrechnung numerischer Zeit in das Datums-POSIXct-Format in R

Ich habe einen Datenrahmen, der eine Spalte für Datum und Uhrzeit enthält, die in R eingelesen wurde. Die Zeitwerte werden als numerische Zeit angezeigt, wie im folgenden Datenbeispiel zu sehen ist. Ich möchte diese in ein Datum und Uhrzeit POSIXct- oder POSIXlt-Format konvertieren, damit Datum und Uhrzeit angezeigt werden können.

tdat <- c(974424L, 974430L, 974436L, 974442L, 974448L, 974454L, 974460L, 974466L, 974472L,
          974478L, 974484L, 974490L, 974496L, 974502L, 974508L, 974514L, 974520L, 974526L,
          974532L,974538L)

974424 sollte 00:00:00 01/03/2011 entsprechen, aber ich kenne nicht den Ursprung der Zeitwerte (d. h. 1970-01-01, das unten verwendet wird, funktioniert nicht). Ich habe versucht, Befehle wie die unten stehenden zu verwenden, um dies zu erreichen, und habe versucht, as.POSIXct zum Laufen zu bringen, aber ich habe keine Lösung gefunden (entweder erhalte ich ein POSIXct-Objekt von NAs oder erhalte obskure Datumswerte).

Versuche, numerische Zeit in Datum und Uhrzeit umzuwandeln:

datetime <- as.POSIXct(strptime(time, format = "%d/%m/%Y %H:%M:%S"))
datetime <- as.POSIXct(as.numeric(time), origin='1970-01-01') 

Ich bin sicher, dass dies eine einfache Sache ist. Jede Hilfe wäre sehr willkommen. Danke!

7voto

G. Grothendieck Punkte 232059

Versuchen Sie eines dieser, abhängig von der gewünschten Zeitzone:

t.gmt <- as.POSIXct(3600 * (tdat - 974424), origin = '2011-03-01', tz = "GMT")

t.local <- as.POSIXct(format(t.gmt))

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X