2012-12-21 8 views
13

Ho una semplice domanda riguardante il pacchetto di lubrificante di R. Ho una serie di timestamp in pochi secondi dall'epoca. Voglio convertire questo nel formato YYYY-MM-DD-HH. In base di R, posso fare qualcosa di simile per convertire un primo momento ad un formato di dataR lubridate convertendo i secondi alla data

> x = as.POSIXct(1356129107,origin = "1970-01-01",tz = "GMT") 
> x 
[1] "2012-12-21 22:31:47 GMT" 

Nota quanto sopra appena lo converte in un formato della data, non il formato AAAA-MM-GG-HH. Come lo farei in lubridata? Come lo farei usando la base R?

Grazie molto in anticipo

+2

Sei confuso. POSIXct non è un formato data, è un formato datetime. C'è * memoria * e c'è * visualizzazione formattazione *. Non confonderli. –

+0

Buono a sapersi. Grazie per il puntatore. – broccoli

risposta

11

Dirk è corretto. Tuttavia, se si è intenti a utilizzare le funzioni di lubridate:

paste(year(dt), month(dt), mday(dt), hour(dt) sep="-") 

Se d'altra parte si desidera gestire la POSIXct oggetti il ​​modo in cui avrebbero dovuto essere utilizzati allora questo dovrebbe soddisfare:

format(x, format="%Y-%m-%d-%H") 
4

lubridate ha un as_datetime() che succede ad avere UNIX epoch time come predefinito origine tempo per rendere questo molto semplice:

> as_datetime(1356129107) 
[1] "2012-12-21 22:31:47 UTC" 

maggiori dettagli possono essere trovati qui: https://rdrr.io/cran/lubridate/man/as_date.html

Problemi correlati