Данные, иллюстрирующие функционирование:
set.seed(100)
df1 <- data.frame(PATIENT_ID = sample(1:10),
Something = sample(letters, 10), Date = paste(1:10, ".12.2015", sep = ""))
df2 <- data.frame(PATIENT_ID = c(6,4,2,3),
Something = sample(letters, 4),
Date = c("1.12.2015", "1.12.2015", "21.12.2015", "2.12.2015"))
df1
# PATIENT_ID Something Date
# 1 4 q 1.12.2015
# 2 3 w 2.12.2015
# 3 5 g 3.12.2015
# 4 1 j 4.12.2015
# 5 9 z 5.12.2015
# 6 6 o 6.12.2015
# 7 10 e 7.12.2015
# 8 2 x 8.12.2015
# 9 8 s 9.12.2015
# 10 7 l 10.12.2015
df2
# PATIENT_ID Something Date
# 1 6 n 1.12.2015
# 2 4 r 1.12.2015
# 3 2 m 21.12.2015
# 4 3 y 2.12.2015
Таким образом, пациенты с ID 4 и 3 должны быть сохранены вместе со всеми их данными:
dfMatched <- merge(x = df1, y = df2, by = c("PATIENT_ID", "Date"),
all.x = FALSE, all = FALSE)
dfMatched
# PATIENT_ID Date Something.x Something.y
# 1 3 2.12.2015 w y
# 2 4 1.12.2015 q r