有没有办法用fread指定日期的格式?

有没有办法用fread指定日期的格式?,r,date,data.table,fread,R,Date,Data.table,Fread,从1.13开始,fread可以自动检测和读取日期类型,这真是太好了。我想检测日期,如果,并且仅当,他们是在一个特定的格式,但从我所看到的,fread只检测ISO格式的日期,没有选择改变这一点 > packageVersion('data.table') [1] '1.14.0' > typeof(data.table::fread("date\n2020-10-10")[[1]]) [1] "integer" > typeof(d

从1.13开始,fread可以自动检测和读取日期类型,这真是太好了。我想检测日期,如果,并且仅当,他们是在一个特定的格式,但从我所看到的,fread只检测ISO格式的日期,没有选择改变这一点

> packageVersion('data.table')
[1] '1.14.0'    
> typeof(data.table::fread("date\n2020-10-10")[[1]])
[1] "integer"
> typeof(data.table::fread("date\n10-10-2020")[[1]])
[1] "character"
> typeof(data.table::fread("date\n10-10-2020", format = "%d-%m-%y")[[1]])
Error in data.table::fread("date\n10-10-2020", format = "%d-%m-%y") :
  argument inutilisé (format = "%d-%m-%y")

有没有办法改变fread检测到的日期格式,或者将来会发生这种情况?如果不是,选项
datatable.old.fread.datetime.character
是否可以永久化,以防止在不需要时进行检测?

不确定情况仍然如此,但需要添加
format=
参数进行解析。它是用于
IDateTime
,但我认为如果/当它实现时,它可能也可以转换为其他日期/时间分类。@Waldi感谢链接,我已经看到了这一点,但对于我的fread>=1.13的应用程序,我需要先将ISO日期列转换回字符,并使用其中一个单独的包转换非ISO日期。如果我们能将日期格式指定给fread,那就简单多了。@r2evans谢谢,我错过了!我知道,
as.IDate(“10-10-2020”,format=“%d-%m-%y”)
已经起作用了。希望fread的格式参数很容易添加。