簡體   English   中英

R data.table fread - 讀取列為Date

[英]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.Dateas.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM