【问题标题】:In R, how can I search for the character vector element that is contained in a specific string?在 R 中,如何搜索包含在特定字符串中的字符向量元素?
【发布时间】:2017-09-06 01:17:17
【问题描述】:

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

[1] Deer  giraffe  hippopotamus lion       

和一个字符串,例如

a <- "ogiraffeps"

如何在字符向量中找到包含在我的字符串中的模式的元素的索引?我希望能够在不循环字符向量的情况下做到这一点

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

【问题讨论】:

    标签: r string vector string-matching


    【解决方案1】:

    stringr::str_detect 在模式上被矢量化:

    library(stringr)
    u <- c("Deer", "giraffe", "hippopotamus", "lion")
    a <- "ogiraffeps"
    
    str_detect(a, u)
    # [1] FALSE  TRUE FALSE FALSE
    

    你可以这样做:

    match(1, str_detect(a, u))
    # [1] 2
    

    【讨论】:

    • 谢谢。我怎样才能不区分大小写?
    • @ag14: str_detect(a, regex(u, ignore_case = TRUE))
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-29
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多