2015-05-07 12 views
5

Mam ramkę danych (df3) z pewnymi wartościami.ciąg znaków nie ma standardowego, jednoznacznego formatu.

Jedną z tych wartości są daedlines.

Dane z tej wartości jest czymś, co następuje:

deadline 
1419397140 
1418994978 
1419984000 
1418702400 

Są dni i chcę przekonwertować do korzystania z tego:

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

Generalnie było pracował dla mnie z innymi ramki danych z innych plików.

jednak z tego, że daje mi ten błąd:

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

Jak mogę to naprawić?

+1

Dane nie jest numeryczny, ale prawdopodobnie czynniki. Jest to prawdopodobnie problem, który należy rozwiązać podczas importu danych. – Roland

Odpowiedz

6

może się okazać, że masz charakter lub czynnik, i spodziewa wektor liczbową do konwersji od czasu UNIX:

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

jako sugestia dla przyszłego debugowania można sprawdzić typ parametru za pomocą

class(df3$deadline) 

i upewniając się, że podajesz poprawny typ jako POSIXlt().

z menu Pomoc dla 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.

Powiązane problemy