Comecei com um exemplo simples que funciona, mas não sei como usar dentro do dplyr mutate
Isso funciona, recebo "bcd-234":
library(tidyverse)
list = c("abc-123", 'bcd-234', 'cde-345', 'bcd-987')
s = 'bcd'
list[str_detect(list, s)][1]
mas quando tento usá-lo dentro do dplyr mutate recebo um erro:
df <- tibble(
name = c('aaa', 'bbb', 'ccc', 'ddd', 'abc', 'bcd', 'cde')
)
df |> mutate(
new_name = if_else(any(str_detect(list, name)), list[str_detect(list, name)][1], name)
)
Recebo um erro:
! Can't recycle `string` (size 4) to match `pattern` (size 7).
Obrigado