2015-05-07 12 views
5

Ich habe einen Datenrahmen (DF3) mit einigen Werten.Zeichenkette ist nicht in einem einheitlichen Standardformat

Einer dieser Werte sind die Daedlines.

Die Daten dieser Wert ist so etwas wie die folgenden:

deadline 
1419397140 
1418994978 
1419984000 
1418702400 

Sie Tage sind, und ich möchte das dies mit konvertieren:

es
df3$deadline <- as.POSIXct(df3$deadline, origin="1970-01-01") 

Im Allgemeinen wurde für mich mit anderen gearbeitet Datenrahmen aus anderen Dateien.

jedoch mit diesem gibt es mir wieder diesen Fehler:

Error in as.POSIXlt.character(as.character(x), ...) : 
    character string is not in a standard unambiguous format 

Wie kann ich es beheben?

+1

Ihre Daten sind nicht numerisch, sondern wahrscheinlich Faktoren. Dies ist wahrscheinlich ein Problem, das beim Datenimport gelöst werden sollte. – Roland

Antwort

6

Es könnte sein, dass Sie ein Zeichen oder einen Faktor haben, und es ist ein numerisches Vektor für die Umwandlung von Unix-Zeit erwartet:

as.POSIXct(as.numeric(as.character(df3$deadline)),origin="1970-01-01") 
2

Als Anregung für zukünftige Debuggen, können Sie Ihren Parametertyp überprüfen

unter Verwendung
class(df3$deadline) 

und sicherstellen, dass Sie den richtigen Typ an as.POSIXlt() übergeben.

im Hilfe-Menü für asPOSIX *():

Character input is first converted to class '"POSIXlt"' by 'strptime': numeric input is first converted to '"POSIXct"'. Any conversion that needs to go between the two date-time classes requires a time zone: conversion from '"POSIXlt"' to '"POSIXct"' will validate times in the selected time zone.

Verwandte Themen