【问题标题】:R: Checking if mutliple elements of a vector appear in vector of stringsR:检查向量的多个元素是否出现在字符串向量中
【发布时间】:2017-03-07 18:07:03
【问题描述】:

我正在尝试创建一个函数来检查向量的所有元素是否都出现在字符串向量中。测试代码如下:

test_values = c("Alice", "Bob")
test_list = c("Alice,Chris,Mark", "Alice,Bob,Chris", "Alice,Mark,Zach", "Alice,Bob,Mark", "Mark,Bob,Zach", "Alice,Chris,Bob", "Mark,Chris,Zach")

我希望这个输出是FALSE TRUE FALSE TRUE FALSE TRUE FALSE

我首先想到我可以在命令grepl(paste(test_values, collapse='|'), test_list) 中将| 切换到& 以获取Alice 和Bob 何时 在字符串中,而不是当其中任何一个时它们出现了,但我无法得到正确的答案。

我也不想使用命令:grepl(test_values[1], test_list) & grepl(test_values[2], test_list),因为test_values 向量会动态变化(从长度 0 变化到 3),所以我正在寻找考虑到这一点的东西。

【问题讨论】:

    标签: r list vector grepl


    【解决方案1】:

    我们可以使用Reducegrepl

    Reduce(`&`, lapply(test_values, grepl, test_list))
    #[1] FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE
    

    【讨论】:

      猜你喜欢
      • 2019-11-02
      • 1970-01-01
      • 2020-09-17
      • 1970-01-01
      • 2017-10-27
      • 1970-01-01
      • 1970-01-01
      • 2014-02-05
      • 1970-01-01
      相关资源
      最近更新 更多