我不确定这只是输出问题,只是想检查一下。
我有以下要转换为POSIXct的字符串,但与传统的POSIXct不同,我希望保持亚秒级的精度,因为我想将它用作xts对象的索引。
所以问题如下,我有字符串对象j
> dput(j)
c("2013-07-09 23:40:00.001", "2013-07-09 23:40:00.002", "2013-07-09 23:40:00.003", "2013-07-09 23:40:00.004")
并希望将其转换为POSIXct对象
所以通常会尝试这个:
> options("digits.secs" = 3)
> as.POSIXct(j, format="%Y-%m-%d %H:%M:%OS")
[1] "2013-07-09 23:40:00.000 BST" "2013-07-09 23:40:00.002 BST"
[3] "2013-07-09 23:40:00.003 BST" "2013-07-09 23:40:00.003 BST"
正如您所看到的那样,输出对象与字符串不完全匹配(即子秒是0,2,3,3而不是1,2,3,4)...有没有办法解决这个问题那么它呢?或者它只是一个输出可视化问题?
答案 0 :(得分:2)
这是一种表示错误,与截断相结合。
以6 d.p。:
观察输出format(as.POSIXct(j),"%Y-%m-%d %H:%M:%OS6")
[1] "2013-07-09 23:40:00.000999" "2013-07-09 23:40:00.002000"
[3] "2013-07-09 23:40:00.003000" "2013-07-09 23:40:00.003999"