![](/img/trans.png)
[英]Using data.table::fread in R to read in date column with non-ISO format
[英]R data.table fread - read column as Date
我想從data.table
讀取一個帶有“YYYY-MM-DD”格式日期列的fread
文件。 默認情況下, fread
將列讀取為chr
。 但是,我希望將列作為Date
,就像我在申請as.Date
時獲得的as.Date
。
我試過用
dt[,starttime.date := as.Date(starttime.date)]
但運行需要很長時間(我有大約4300萬行)。
正如fread文檔中所建議的fasttime
,使用fasttime
包比as.Date
或as.IDate
快大約100倍:
library(data.table)
library(fasttime)
dt[,starttime.date := fastPOSIXct(starttime.date)]
基准測試結果:
library(microbenchmark)
library(fasttime)
DT <- data.table(start_date = paste(sample(1900:2018, 100000, replace = T),
sample(1:12, 100000, replace = T),
sample(1:28, 100000, replace = T),
sep = "-"))
microbenchmark(
as.Date(DT$start_date),
as.IDate(DT$start_date),
fastPOSIXct(DT$start_date)
)
> Unit: milliseconds
> expr mean
> as.Date(DT$start_date) 383.89
> as.IDate(DT$start_date) 405.89
> fastPOSIXct(DT$start_date) 4.59
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.