我从一个简单的例子开始,但我不知道如何在 dplyr mutate 中使用
这有效,我得到了“bcd-234”:
library(tidyverse)
list = c("abc-123", 'bcd-234', 'cde-345', 'bcd-987')
s = 'bcd'
list[str_detect(list, s)][1]
但是当我尝试在 dplyr mutate 中使用它时出现错误:
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)
)
我收到一个错误:
! Can't recycle `string` (size 4) to match `pattern` (size 7).
谢谢