R xts:毫秒索引

时间:2012-03-19 21:19:46

标签: r xts

如何创建索引包含毫秒的xts对象?我在POSIXlt帮助页面中找不到任何格式规范,但indexFormat()中有reference到%OS。

更新

基于Gavin zoo答案的xts示例:

> options(digits.secs = 3)
> data(sample_matrix)
> sample.xts = xts(sample_matrix, Sys.time() + seq(0, by = 0.1, length = 180))
> head(sample.xts)
                            Open     High      Low    Close
2012-03-20 08:49:02.820 50.03978 50.11778 49.95041 50.11778
2012-03-20 08:49:02.920 50.23050 50.42188 50.23050 50.39767
2012-03-20 08:49:03.020 50.42096 50.42096 50.26414 50.33236
2012-03-20 08:49:03.120 50.37347 50.37347 50.22103 50.33459
2012-03-20 08:49:03.220 50.24433 50.24433 50.11121 50.18112
2012-03-20 08:49:03.320 50.13211 50.21561 49.99185 49.99185

1 个答案:

答案 0 :(得分:7)

这适用于动物园包,所以我怀疑它也适用于 xts ,因为后者建立在前者之上。

> ## create some times with milliseconds
> times <- Sys.time() + seq(0, by = 0.1, length = 10)
> times
 [1] "2012-03-19 22:10:57.763 GMT" "2012-03-19 22:10:57.863 GMT"
 [3] "2012-03-19 22:10:57.963 GMT" "2012-03-19 22:10:58.063 GMT"
 [5] "2012-03-19 22:10:58.163 GMT" "2012-03-19 22:10:58.263 GMT"
 [7] "2012-03-19 22:10:58.363 GMT" "2012-03-19 22:10:58.463 GMT"
 [9] "2012-03-19 22:10:58.563 GMT" "2012-03-19 22:10:58.663 GMT"
> ZOO <- zoo(1:10, order = times)
> index(ZOO)
 [1] "2012-03-19 22:10:57.763 GMT" "2012-03-19 22:10:57.863 GMT"
 [3] "2012-03-19 22:10:57.963 GMT" "2012-03-19 22:10:58.063 GMT"
 [5] "2012-03-19 22:10:58.163 GMT" "2012-03-19 22:10:58.263 GMT"
 [7] "2012-03-19 22:10:58.363 GMT" "2012-03-19 22:10:58.463 GMT"
 [9] "2012-03-19 22:10:58.563 GMT" "2012-03-19 22:10:58.663 GMT"

查看毫秒的技巧是通过digits.secs更改options()选项。以上执行使用:

> getOption("digits.secs")
[1] 3

使用

设置
> opts <- options(digits.secs = 3)

您可以通过执行options(opts)将其重置为默认值(0)。默认情况下,R不会打印亚秒信息,因为digits.secs默认为0。即使没有打印,数据也会以亚秒的精度记录。

如果这不是您的意思,您能解释一下您所做的不起作用吗?