r-如何在将POSIXct转换为字符时保留十进制值


> 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

最新更新