R data.table fread - read column as Date

前端 未结 1 541
半阙折子戏
半阙折子戏 2021-02-06 01:29

I would like to read a file with fread from data.table that has a column with \"YYYY-MM-DD\" format dates. By default, fread reads the col

相关标签:
1条回答
  • 2021-02-06 01:54

    Using the fasttime package, as suggested in the fread documentation, is approximately 100x faster than as.Date or as.IDate:

    library(data.table)
    library(fasttime)
    
    dt[,starttime.date := fastPOSIXct(starttime.date)]
    

    Benchmark results:

    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 
    
    0 讨论(0)
提交回复
热议问题