dat <- data.frame(id = c(0, 0, 01, 02, 03, 011, 012, 013, 0111, 0112, 0113),
                  x1 = rnorm(11), 
                  x2 = rnorm(11),
                  x3 = rnorm(11))
my.df <- data.frame(id = 0, id1 = 01, id2 = 011, id3 = 0111, some.column = 'xyz')
I want to filter rows from dat using following conditions:
If my.df$id3 is present in dat$id, filter dat$id == my.df$id3, if not
check if my.df$id2 is present and filter dat$id == my.df$id2, if not,
check if my.df$id1 is present and filter dat$id == my.df$id1, if not
simply filter dat$id == my.df$id
dat %>% 
dplyr::filter(ifelse(my.df$id3 %in% id, id == my.df$id3, 
              ifelse(my.df$id2 %in% id, id == my.df$id2,
              ifelse(my.df$id1 %in% id, id == my.df$id1, id == my.df$id))))
It returns null rows.
 
     
     
    