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.Date
en ??epoch
gelezen, maar schijn die informatie te hebben gemist.
p>
Antwoord 1, autoriteit 100%
Ga via POSIXct
en je wilt daar een TZ
instellen — 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"