Если ваши фреймы данных являются таблицами данных, вы можете использовать приведенный ниже код для объединения двух таблиц при совпадении ID
s и Date
из df1
> = Date
из df2
, что вернет результат непосредственно, без необходимости дополнительного шага фильтра.
library(data.table)
df1[df2, on = .(ID, Date >= Date), .(ID, Date = x.Date)]
# ID Date
# 1: 1 2000-01-01
# 2: 1 2001-01-01
# 3: 2 2000-01-01
# 4: 3 1998-01-01
# 5: 3 1999-01-01
Используемые данные
df1 <- fread('
ID Date
1 1999-01-01
1 2000-01-01
1 2001-01-01
2 1999-01-01
2 2000-01-01
3 1998-01-01
3 1999-01-01
4 2000-01-01
')
df1[, Date := as.Date(Date)]
df2 <- fread('
ID Date
1 1999-03-01
2 2000-01-01
3 1998-01-01
')
df2[, Date := as.Date(Date)]