数据表R中的子集ID和日期

数据表R中的子集ID和日期,r,data.table,subset,R,Data.table,Subset,我有一个类似于我创建的下一个示例的大型矩阵(我有70列和数百万行): a我认为您正在寻找非等内部联接: IDs[data, on=.(ID, date1<=date1, date2>=date1), nomatch=0L, .(ID, date1=i.date1)] a <- seq(as.IDate("2011-12-30"), as.IDate("2014-01-04"), by="week") b <- seq(as.IDate("2012-01-01"), as

我有一个类似于我创建的下一个示例的大型矩阵(我有70列和数百万行):


a我认为您正在寻找非等内部联接:

IDs[data, on=.(ID, date1<=date1, date2>=date1), nomatch=0L, .(ID, date1=i.date1)]
a <- seq(as.IDate("2011-12-30"), as.IDate("2014-01-04"), by="week")
b <- seq(as.IDate("2012-01-01"), as.IDate("2014-01-06"), by="week")
IDs <- data.table(ID = 1:length(a), date1 = a, date2 = b)
A <- list()
for(i in 1:dim(IDs)[1]){  
 A[[i]] <- data[ID == IDs[i,ID] & (date1 %between% IDs[i,.(date1,date2)]),]
}
IDs[data, on=.(ID, date1<=date1, date2>=date1), nomatch=0L, .(ID, date1=i.date1)]
data[IDs, on=.(ID, date1>=date1, date1<=date2), nomatch=0L, .(ID, date1=x.date1)]
data[IDs[data, on=.(ID, date1<=date1, date2>=date1), nomatch=0L, which=TRUE]]
   ID      date1
1:  1 2011-12-30