С помощью dplyr
мы можем выполнить
library(dplyr)
inner_join(ABT1, select(ABT2, q, z), by = 'q') %>%
filter(x %in% z) %>%
select(x) %>%
distinct()
# x
#1 4
#2 3
-тестирование с помощью sqldf
library(sqldf)
sqldf('SELECT x
FROM ABT1
WHERE x IN (SELECT z FROM ABT2 WHERE q = ABT1.q)')
# x
#1 4
#2 3
data
ABT1 <- data.frame(q = rep(letters[1:3], each = 2), x = c(1, 3, 5, 2, 4, 3))
ABT2 <- data.frame(q = rep(letters[2:4], each = 3),
z = c(4, 9, 12, 3, 1, 4, 10, 6, 5))