【问题标题】:R equivalent of endsWith to check against a list of stringsR 等效于 endsWith 来检查字符串列表
【发布时间】:2019-07-20 14:58:48
【问题描述】:

我正在尝试检查数据框列中的值是否以向量中包含的预定义字符串列表中的任何值结尾。我知道可以使用endsWith检查单个字符串,但我还没有找到使用它检查字符串列表的方法。

x <- c(" 2", " 3", " II", " III")
title <- c("a 2", "adbs", "ddig", "difo 3", "fgij III", "sdgoij")
endsWith(title, x)

我不希望这段代码做我想做的事,但我正在寻找的是使用上述数据提供以下输出的代码。 真假假真真假

【问题讨论】:

    标签: r ends-with


    【解决方案1】:

    一个选项是遍历“x”,将endsWithReducelistvectors 应用到单个逻辑vector

    Reduce(`|`, lapply(x, function(y) endsWith(title, y)))
    #[1]  TRUE FALSE FALSE  TRUE  TRUE FALSE
    

    另一个选项是grepl paste将 'x' 的元素用分隔符 (|) 和元字符 ($) 在末尾指定字符串的结尾

    pat <- paste0("(", paste(x, collapse = "|"), ")$")
    grepl(pat, title)
    #[1]  TRUE FALSE FALSE  TRUE  TRUE FALSE
    

    【讨论】:

      猜你喜欢
      • 2014-07-29
      • 1970-01-01
      • 2020-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-21
      • 1970-01-01
      • 2016-05-09
      相关资源
      最近更新 更多