Question: trying to filter this df down by comparing these two columns where `prod` exists in the `lob` column:

**reproducible code:**

```
df <- data.frame(prod = c("CES", "Access", "Access", "CES"), lob = c("Access;Entertainment", "CES", "Access", "Access;Entertainment;CES"))

    prod                      lob
1    CES     Access;Entertainment
2 Access                      CES
3 Access                   Access
4    CES Access;Entertainment;CES

```

**Expected Result:**

```
    prod                      lob
1 Access                   Access
2    CES Access;Entertainment;CES

```

I've tried splitting the lob column into a vector, or a list containing elements, and then used `dplyr filter` with `grepl(prod, lob)`, or `prod %in% lob`, but neither seem to work

```
df %>%
filter(prod %in% lob)

df %>%
mutate(lob = strsplit(lob, ";")) %>%
filter(prod %in% lob)

df %>%
mutate(lob = strsplit(lob, ";")) %>%
filter(grepl(prod), lob)

```

Answer: 
It would probably be easiest just to add a `rowwise()` in there

```
df %>%
  mutate(lob = strsplit(lob, ";")) %>% 
  rowwise() %>% 
  filter(prod %in% lob) %>% 
  as.data.frame() # rowwise makes it a tibble, this changes it back if needed

```

If you don't really want to do the `mutate()`, you can do

```
df %>%
  rowwise() %>% 
  filter(prod %in% strsplit(lob, ";")[[1]])

```
With `stringr::str_detect`

```
library(tidyverse)

df %>% 
  filter(str_detect(as.character(lob), as.character(prod)))

```