2015-05-07 23 views
5

Ho un dataframe (df3) con alcuni valori.stringa di caratteri non in un formato standard non ambiguo

Uno di questi valori è la daedline.

I dati di questo valore è simile al seguente:

deadline 
1419397140 
1418994978 
1419984000 
1418702400 

Sono giorni e voglio convertire il di utilizzare questo:

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

In generale si è lavorato per me con altri dataframes da altri file.

Tuttavia, con questo mi restituisce questo errore:

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

Come posso risolvere il problema?

+1

I suoi dati non è numerico, ma probabilmente fattori. Questo è probabilmente un problema che dovrebbe essere risolto durante l'importazione dei dati. – Roland

risposta

6

Potrebbe essere che hai un carattere o fattore, ed è in attesa di un vettore numerico per la conversione da tempo unix:

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

Come suggerimento per il futuro il debug, è possibile controllare il tipo di parametro utilizzando

class(df3$deadline) 

e assicurandosi di passare il tipo corretto su as.POSIXlt().

Dal menu di aiuto per 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.

Problemi correlati