Converteer UNIX-tijdperk naar Date-object

Ik teken en voer berekeningen uit op uniform verdeelde tijdreeksen. De tijdstempels worden momenteel opgeslagen als gehele getallen die het aantal seconden vertegenwoordigen sinds het UNIX-tijdperk (bijv. 1352068320), maar Date-objecten lijken meer geschikt om te plotten. Hoe kan ik de conversie uitvoeren?

Ik heb ?Date, ?as.Dateen ??epochgelezen, maar schijn die informatie te hebben gemist.

p>


Antwoord 1, autoriteit 100%

Ga via POSIXcten je wilt daar een TZinstellen — hier zie je mijn (Chicago) standaard:

R> val <- 1352068320
R> as.POSIXct(val, origin="1970-01-01")
[1] "2012-11-04 22:32:00 CST"
R> as.Date(as.POSIXct(val, origin="1970-01-01"))
[1] "2012-11-05" 
R> 

Bewerken:Een paar jaar later kunnen we de altijd gebruiken pakket:

R> library(anytime)
R> anytime(1352068320)
[1] "2012-11-04 16:32:00 CST"
R> anydate(1352068320)
[1] "2012-11-04"
R> 

Let op hoe dit allemaal werkt zonder elk formaat of oorsprongsargumenten.


Antwoord 2, autoriteit 12%

Met library(lubridate)worden numerieke weergaven van datum en tijd opgeslagen als het aantal seconden sinds
1970-01-01 00:00:00 UTC, kan in datums worden gedwongen met as_datetime():

lubridate::as_datetime(1352068320)
[1] "2012-11-04 22:32:00 UTC"

Other episodes