R data.table,非等联接列选择
我有两个数据表。一个保存时间序列数据,一个保存感兴趣的时间范围R data.table,非等联接列选择,r,data.table,R,Data.table,我有两个数据表。一个保存时间序列数据,一个保存感兴趣的时间范围 dt1 = data.table(date = seq(as.Date('2000-01-01'), length.out = 4, by = 1), B = c(1,2,3,4), C = c(10, 20, 30, 40)) dt1 date B C 1: 2000-01-01 1 10 2: 2000-01-02 2 20 3: 2000-01-03 3 30 4: 2000-01-04 4 40 dt2
dt1 = data.table(date = seq(as.Date('2000-01-01'), length.out = 4, by = 1), B = c(1,2,3,4), C = c(10, 20, 30, 40))
dt1
date B C
1: 2000-01-01 1 10
2: 2000-01-02 2 20
3: 2000-01-03 3 30
4: 2000-01-04 4 40
dt2 = data.table(dateFrom = as.Date('2000-01-02'), dateTo = as.Date('2000-01-03'), id = 4, name='first')
dt2
dateFrom dateTo id name
1: 2000-01-02 2000-01-03 4 first
现在,我在两列上进行非相等联接,在返回列上没有指定。我没有“date”列,但有dateFrom和dateTo。dateFrom和dateTo中的值更改为“日期”
奇怪的是,如果非相等联接仅在一列上,则没有错误
dt2[dt1, on = .(dateFrom <= date), .(date, dateFrom)]
date dateFrom
1: 2000-01-01 2000-01-01
2: 2000-01-02 2000-01-02
3: 2000-01-03 2000-01-03
4: 2000-01-04 2000-01-04
dt2[dt1,on=(dateFrom
dt2[dt1, on = .(dateFrom <= date, dateTo >= date), nomatch = 0, .(date)]
date
1: 2000-01-02
2: 2000-01-03
dt2[dt1, on = .(dateFrom <= date, dateTo >= date), nomatch = 0, .(date, dateFrom)]
Error in `[.data.table`(dt2, dt1, on = .(dateFrom <= date, dateTo >= date), :
column(s) not found: dateFrom
dt2[dt1, on = .(dateFrom <= date), .(date, dateFrom)]
date dateFrom
1: 2000-01-01 2000-01-01
2: 2000-01-02 2000-01-02
3: 2000-01-03 2000-01-03
4: 2000-01-04 2000-01-04