3

我不确定这是否只是一个输出问题,但只是想检查一下。

我有以下字符串,我想将其转换为 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)...有没有办法解决这个问题,以便是吗?还是只是输出可视化问题?

4

1 回答 1

2

这是一个表示错误,与截断相结合。

以 6 dp 观察输出:

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"
于 2013-07-10T13:22:59.103 回答