One option is to use tidyr::pivot_wider to reshape your table so you can apply a dplyr::filter.
For example,
library(dplyr)
library(tidyr)
df <- tibble(
ID = c(1,1,1,2,2,2),
Var1 = c("A1", "A2", "A3", "A1","A2","A4")
) %>%
mutate(value = TRUE)
df %>% pivot_wider(names_from = Var1, values_from = value) %>%
filter(A1, A2, A3) %>%
select(ID)
#> # A tibble: 1 x 1
#> ID
#> <dbl>
#> 1 1
Created on 2020-05-19 by the reprex package (v0.3.0)