Требуется (стандартный) тип POSIXt
из базы R, который может иметься в «компактной форме» как POSIXct
(что по сути является двойным числом, представляющим доли секунды с начала эпохи) или как длинная форма в POSIXlt
(который содержит подэлементы). Круто то, что здесь определены арифметические и т. Д. - см. help(DateTimeClasses)
Быстрый пример:
R> now <- Sys.time()
R> now
[1] "2009-12-25 18:39:11 CST"
R> as.numeric(now)
[1] 1.262e+09
R> now + 10 # adds 10 seconds
[1] "2009-12-25 18:39:21 CST"
R> as.POSIXlt(now)
[1] "2009-12-25 18:39:11 CST"
R> str(as.POSIXlt(now))
POSIXlt[1:9], format: "2009-12-25 18:39:11"
R> unclass(as.POSIXlt(now))
$sec
[1] 11.79
$min
[1] 39
$hour
[1] 18
$mday
[1] 25
$mon
[1] 11
$year
[1] 109
$wday
[1] 5
$yday
[1] 358
$isdst
[1] 0
attr(,"tzone")
[1] "America/Chicago" "CST" "CDT"
R>
Что касается их чтения, см. help(strptime)
Что касается различий, то тоже легко:
R> Jan1 <- strptime("2009-01-01 00:00:00", "%Y-%m-%d %H:%M:%S")
R> difftime(now, Jan1, unit="week")
Time difference of 51.25 weeks
R>
Наконец, пакет zoo является чрезвычайно универсальным и хорошо документированным контейнером для матрицы со связанными индексами даты / времени.