【发布时间】:2012-12-27 14:37:21
【问题描述】:
我正在使用data.table 的新版本,尤其是AWESOME fread 功能。我的文件包含作为字符串加载的日期(因为我不知道该怎么做)看起来像01APR2008:09:00:00。
我需要在这些日期时间对 data.table 进行排序,然后以IDateTime 格式(或其他我还不知道的格式)进行有效排序。
> strptime("01APR2008:09:00:00","%d%b%Y:%H:%M:%S")
[1] "2008-04-01 09:00:00"
> IDateTime(strptime("01APR2008:09:00:00","%d%b%Y:%H:%M:%S"))
idate itime
1: 2008-04-01 09:00:00
> IDateTime("01APR2008:09:00:00","%d%b%Y:%H:%M:%S")
Error in charToDate(x) :
character string is not in a standard unambiguous format
看来我做不到DT[ , newType := IDateTime(strptime(oldType, "%d%b%Y:%H:%M:%S"))]。
那么我的问题是:
- 有没有办法从
fread直接转换为IDateTime,这样我以后可以高效地排序? - 如果没有,知道我希望能够按此日期时间列对 DT 进行排序的最有效方法是什么
【问题讨论】:
-
你能展示它们看起来你的数据文件吗?
-
您好,该文件是一个带有
sep=";"的csv 文件,日期格式类似于"01APR2008:09:00:00",即format="%d%b%Y:%H:%M:%S"。我所做的是DT[,date:=IDate(oldType,"%d%b%Y")];DT[,time:=ITime(oldType,"%d%b%Y:%H:%M:%S")],最后是setkeyv(DT,c("date","time")) -
日期是你数据的第一列吗?
标签: r datetime data.table