【问题标题】:POSIXct subsecond output [duplicate]POSIXct 亚秒级输出[重复]
【发布时间】:2013-07-10 21:28:06
【问题描述】:

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

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

【问题讨论】:

    标签: r xts posixct


    【解决方案1】:

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

    以 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"
    

    【讨论】:

    • 这不是问题的全部。请参阅重复的问题以获得更好的解释。
    猜你喜欢
    • 1970-01-01
    • 2013-09-15
    • 2016-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多