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