Обнаружение нескольких строк с помощью dplyr и stringr

Я пытаюсь объединить dplyr и stringr для обнаружения нескольких шаблонов в кадре данных. Я хочу использовать dplyr, так как я хочу протестировать ряд различных столбцов.

Вот некоторые примеры данных:

test.data <- data.frame(item = c("Apple", "Bear", "Orange", "Pear", "Two Apples"))
fruit <- c("Apple", "Orange", "Pear")
test.data
        item
1      Apple
2       Bear
3     Orange
4       Pear
5 Two Apples

Я хотел бы использовать что-то вроде:

test.data <- test.data %>% mutate(is.fruit = str_detect(item, fruit))

и получить

        item is.fruit
1      Apple        1
2       Bear        0
3     Orange        1
4       Pear        1
5 Two Apples        1

Очень простой тест работает

> str_detect("Apple", fruit)
[1]  TRUE FALSE FALSE
> str_detect("Bear", fruit)
[1] FALSE FALSE FALSE

Но я не могу заставить это работать над столбцом данных, даже без dplyr:

> test.data$is.fruit <- str_detect(test.data$item, fruit)
Error in check_pattern(pattern, string) : 
  Lengths of string and pattern not compatible

Кто-нибудь знает как это сделать?

Ответы на вопрос(2)

Ваш ответ на вопрос