I have the following data
ID INDUSTRY PRODUCT
625109 PersonalCare Neolone Preservatives
199672 PersonalC
Multiple ways to do this :
In dplyr
df %>%
group_by(ID) %>%
filter(all(c("Neolone Preservatives", "Optiphen") %in% PRODUCT))
# ID INDUSTRY PRODUCT
#
#1 625109 PersonalCare Neolone Preservatives
#2 227047 Pharma Optiphen
#3 625109 PersonalCare Optiphen
#4 227047 Food Neolone Preservatives
In base R :
df[ave(df$PRODUCT, df$ID, FUN = function(x)
all(c("Neolone_Preservatives", "Optiphen") %in% x)) == "TRUE", ]