我对 as.POSIXct() 函数如何处理毫秒感到有些困惑。 R v4.0.5 的可重现代码如下所示(新会话,未加载任何包)。
> options("digits.secs" = 3)
> a <- as.POSIXct("2020-09-14 00:01:39.800")
> a
[1] "2020-09-14 00:01:39.7 CEST"
> format(a, "%Y-%m-%d %H:%M:%OS3")
[1] "2020-09-14 00:01:39.799"
> b <- as.POSIXlt("2020-09-14 00:01:39.800")
> b
[1] "2020-09-14 00:01:39.8 CEST"
> format(b, "%Y-%m-%d %H:%M:%OS3")
[1] "2020-09-14 00:01:39.800"
谁能解释一下这种行为?为什么 as.POSIXct 将我的 .800 毫秒更改为 0.799 毫秒?我从来没有注意到。这可能是最近 R 版本中引入的错误吗?