Ich habe ein Datenframe, in dem eine Spalte eine Reihe von Datumsangaben auflistet. Seltsamerweise ist der Datentyp für diese Spalte "Ganzzahl". Ich muss die Spalte auf einen richtigen Datetime-Datentyp wie POSIXct zwingen, damit ich diese Zeitstempel von denen in einem anderen Feld subtrahieren kann. Wenn ich jedoch versuche, diese Datetime-Werte in POSIXct zu zwingen, verlieren sie die Zeitkomponente. Wenn ich versuche, die Datumsangaben zu berechnen, ohne zuerst einen anderen Datentyp zu verwenden, verhält sich R so, als ob die Zeitkomponente des Zeitstempels nicht vorhanden wäre (es wird davon ausgegangen, dass jedes Datum eine Zeit von Mitternacht hat). Was ist los und wie repariere ich es, damit R den Zeitstempel erkennt?R erkennt keine Zeitkomponente von Datetime-Werten
> dates[1]
[1] 2016-05-05T16:46:21-04:00
48 Levels: 2016-05-03T06:45:42-04:00 2016-05-03T06:45:43-04:00 ... 2016-05-05T16:50:00-04:00
> typeof(dates)
[1] "integer"
> as.POSIXct(dates[1])
[1] "2016-05-05 EDT"
> as.character(dates[1])
[1] "2016-05-05T16:46:21-04:00"
> as.POSIXct(as.character(dates[1]))
[1] "2016-05-05 EDT"
Die '48 Levels' ist ein Hinweis, dass R es als Faktoren behandelt. Wenn Sie 'read.csv' verwendet haben, verwenden Sie' stringAsFactors = F' – rbm
Sie haben ein nicht standardisiertes Datum-Uhrzeit-Format. R wird wahrscheinlich etwas Hilfe brauchen 'as.POSIXct (" 2016-05-05T16: 46: 21-04: 00 ", format ="% Y-% m-% dT% H:% M:% S ")' –