Если я вас правильно понял, вы хотите узнать dates
, которые присутствуют в одном и том же ID
из обоих кадров данных.Мы можем split
оба кадра данных на основе ID
и найти Date
в df2
, которые присутствуют в df1
, и извлечь эти строки.
do.call(rbind, Map(function(x, y) x[x$Date %in% y$Date, ],
split(df2, df2$ID), split(df1, df1$ID)))
# ID Date
#A.1 A 21/1/2018
#A.2 A 22/1/2018
#B B 21/1/2018
Вы также можете получить индекс строки, выполнив
df2$row <- 1:nrow(df2)
unname(unlist(Map(function(x, y) x$row[x$Date %in% y$Date],
split(df2, df2$ID), split(df1, df1$ID))))
#[1] 1 2 4