r – Buscar palabras en una frase

¿Se puede encontrar dos palabras en una frase?

Por ejemplo

section <- c("pepe juan marta ana", "maria ana pepe pepa", "pepe marta dina tania"," juan roberto tania")
grade <- c(78, 93, 56, 23)
gradebook <- data.frame(section, grade)

  section                     grade
pepe juan marta ana              78
maria ana pepe pepa              93
pepe ana marta dina tania        56
juan roberto tania               23

Quiero encontrar la palabra “juan”

mutate(gradebook, buscar = ifelse( str_detect(gradebook$section ,"juan"), "contiene","no sale"))
   section             grade     buscar
pepe juan marta ana      78     contiene
maria ana pepe pepa      93     no sale
pepe marta dina tania    56     no sale
juan roberto tania       23     contiene

Ha encontrado la palabra “juan” entre los nombres

Ahora quiero buscar dos nombres:

mutate(gradebook, buscar = ifelse( str_detect(gradebook$section ,c("ana","roberto")), "contiene","no sale"))
 section                 grade     buscar
pepe juan marta ana       78       contiene
maria ana pepe pepa       93       no sale
pepe marta dina tania     56       no sale
juan roberto tania        23       contiene

ana sale en la segunda fila pero no lo detecta.

  • ¿cómo sería para detectar dos nombres de forma individual?

    Si quiero buscar ana y roberto, el resultado deseado sería:

 section                 grade     buscar
pepe juan marta ana       78       contiene
maria ana pepe pepa       93       contiene
pepe marta dina tania     56       no sale
juan roberto tania        23       contiene
 section                 grade     buscar
pepe juan marta ana       78       no sale
maria ana pepe pepa       93       no sale
pepe marta dina tania     56       no sale
juan roberto tania        23       contiene