我想使用
NA
将一列 POSIXct
值读取为 fread
。
我希望这能起作用:
library(data.table)
fwrite(data.table(datetime = as.POSIXct(NA)), "test.csv")
fread("test.csv", colClasses = "POSIXct")
但是,这会给出以下警告:
Warning message:
Column 'datetime' was requested to be 'POSIXct' but fread encountered the following error:
character string is not in a standard unambiguous format
so the column has been left as type 'character'
相比之下,使用
utils::write.csv
和 utils::read.csv
这有效:
write.csv(data.frame(datetime = as.POSIXct(NA)), "test.csv", row.names = FALSE)
read.csv("test.csv", colClasses = "POSIXct")
有可行的解决方法吗?
我用过
data.table_1.15.4
。
解决方法是让 fread 始终将其读取为双精度/数字,然后转换为 posixct。
library(data.table)
fwrite(data.table(datetime = as.POSIXct(NA)), "test.csv")
dt_in <- fread("test.csv", colClasses = "double")[, datetime := as.POSIXct(datetime, origin="1970-01-01")]
dt_in