> 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