【问题标题】:Find any values from one list in another从另一个列表中查找任何值
【发布时间】:2019-05-07 21:33:08
【问题描述】:

我有 2 个包含基因登录代码的列表,我正在尝试在一个列表中搜索另一个列表的任何值。这些列表也以 txt 文件的形式存在。我已经尝试在 R 和 unix 中使用 grep 但这似乎不起作用,是否有任何其他命令我可以使用而不必在 unix 中使用 awk。无论我使用什么,都必须搜索 list1 中的任何项目,即 1111 或 2222 或 3333 或 4444,我不需要对所有项目进行肯定匹配。

R

list1=c("1111","2222","3333",4444")
list2=c("0000","0001","1111","0002","0003","0004")
grep(list1,list2)
integer(0)

Unix

grep -F -f "list1.txt" "list2.txt"

【问题讨论】:

    标签: r unix


    【解决方案1】:

    %in% 运算符将告诉您第一个列表中的哪些值(作为逻辑值)在第二个列表中的某处找到。

    match 函数将告诉您在第二个列表中的哪个位置找到第一个列表的每个元素,NA 用于那些不在第二个列表中的元素:

    list1 %in% list2
    # [1]  TRUE FALSE FALSE FALSE
    match(list1, list2)
    # [1]  3 NA NA NA
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-21
      • 2012-10-13
      • 2015-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多