我一直在使用 data.table 来处理我使用 data.frames 的几乎所有内容,因为它在大型内存数据(数百万行)上要快得多。但是,我不太确定如何在不使用 apply 的情况下将天或月添加到 IDate 列(这非常慢)。
一个最小的例子:
dates = c("2003-01-01", "2003-02-01", "2003-03-01", "2003-06-01", "2003-12-01",
"2003-04-01", "2003-05-01", "2003-07-01", "2003-09-01", "2003-08-01")
dt = data.table(idate1=as.IDate(dates))
现在,假设我想创建一个日期提前 6 个月的列。通常,对于单个 IDate,我会这样做:
seq(dt$idate1[1],by="6 months",length=2)[2]
但这不起作用,因为 from= 的长度必须为 1:
dt[,idate2:=seq(idate1,by="6 months",length=2)[2]]
有没有一种有效的方法来在 dt 中创建列 idate2?
非常感谢,RR