在 R 中,如何搜索特定字符串中包含的字符向量元素?

ag1*_*g14 3 string r vector string-matching

我在 R 中有一个字符向量元素,类似于:

[1] Deer  giraffe  hippopotamus lion       
Run Code Online (Sandbox Code Playgroud)

和一个字符串,例如

a <- "ogiraffeps"
Run Code Online (Sandbox Code Playgroud)

如何找到字符向量中包含字符串中模式的元素的索引?我希望能够在不循环字符向量的情况下执行此操作

我是 R 新手,但grep似乎无法处理这个问题,因为它总是使用单个字符串(模式)来查看它是否包含在字符向量中。但是,我想要做的是找到字符串中包含的字符向量的元素。

Sca*_*bee 6

stringr::str_detect在模式上进行矢量化:

library(stringr)
u <- c("Deer", "giraffe", "hippopotamus", "lion")
a <- "ogiraffeps"

str_detect(a, u)
# [1] FALSE  TRUE FALSE FALSE
Run Code Online (Sandbox Code Playgroud)

因此你可以这样做:

match(1, str_detect(a, u))
# [1] 2
Run Code Online (Sandbox Code Playgroud)