从另一个列表中查找任何值

时间:2019-05-07 21:33:08

标签: r unix

我有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"

1 个答案:

答案 0 :(得分:0)

%in%运算符将告诉您第一个列表中哪些值(从逻辑上看)在第二个列表中的某个地方找到。

match函数将告诉您第一列表中每个元素在第二个列表中的何处,对于不在第二列表中的元素,它们NA被发现:

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