gpt4 book ai didi

R data.table fread - 读取列作为日期

转载 作者:行者123 更新时间:2023-12-04 03:57:45 25 4
gpt4 key购买 nike

我想用 fread 读取文件来自 data.table有一列带有“YYYY-MM-DD”格式的日期。默认情况下,fread将该列读取为 chr .但是,我想将该列设为 Date ,与我在申请 as.Date 时获得的方式相同.

我试过用

dt[,starttime.date := as.Date(starttime.date)]

但运行需要很长时间(我有大约 4300 万行)。

最佳答案

使用 fasttime包,如 fread documentation 中所建议的, 比 as.Date 快大约 100 倍或 as.IDate :

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

关于R data.table fread - 读取列作为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29140416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com