如何将unix-time值列表转换为时间序列类对象

时间:2016-10-01 18:38:50

标签: r time-series

如果我有一个unix时间戳的向量,例如

> head(debug$time)
[1] 1.473639e+18 1.473639e+18 1.473639e+18 1.473639e+18 1.473640e+18
[6] 1.473640e+18

如何将其用作Date向量以形成tsxts对象? 我需要这个来参数化和使用 bfast docs

我厌倦了做以下事情(tz = CEST无法识别btw):

t_ <- as.POSIXct(as.numeric(debug$time), origin = '1970-01-01')

你能告诉我这个吗?

1 个答案:

答案 0 :(得分:2)

使用this解决CEST问题,但您需要做的就是:

vals <- c(1.473639e+18, 1.473639e+18, 1.473639e+18, 1.473639e+18, 1.473640e+18, 1.473640e+18)
as.POSIXct(vals/1000000000, origin="1970-01-01 00:00:00")
## [1] "2016-09-11 20:10:00 EDT" "2016-09-11 20:10:00 EDT" "2016-09-11 20:10:00 EDT" "2016-09-11 20:10:00 EDT" "2016-09-11 20:26:40 EDT"
## [6] "2016-09-11 20:26:40 EDT"

使日期/时间转换有效。

<强>更新

看起来你也可以这样做:

as.POSIXct(vals/1e9, origin="1970-01-01 00:00:00", tz="Etc/GMT+2")

让您的CEST也能正常工作(从我读到的内容来看,这是一个等效的时区,但我不会在那里生活或使用那里的数据,因此无法验证该声明)。同时使用Rich的科学记法: - )