> t <- Sys.time()
> ct <- as.character(t)
> t - as.POSIXct(ct)
Time difference of 0.4370408 secs
上述示例表明将 POSIXct 转换为字符时会丢失精度。
如何在转换为字符时保留精确值,以便在从字符转换回 POSIXct 时获得原始值?
digits.secs
设置为6(其最大值)。options(digits.secs = 6)
t <- Sys.time()
ct <- as.character(t)
t - as.POSIXct(ct)
Time difference of 0 secs
您可以使用format
和%OS6
来以数字形式显示秒数,但有时仍会存在差异:
t <- Sys.time()
ct <- format(t, "%Y-%m-%d %H:%M:%OS6")
t - as.POSIXct(ct)
#Time difference of 0 secs
?t
。 - Jaap