Найти любые значения из одного списка в другом - PullRequest
0 голосов
/ 08 мая 2019

У меня есть 2 списка, содержащие коды доступа к гену, я пытаюсь найти в одном списке любые значения другого. Эти списки также существуют в виде текстовых файлов. Я пытался использовать grep в R и Unix, но это, похоже, не работает, есть ли другие команды, которые я могу использовать, не используя awk в Unix. Что бы я ни использовал, я должен искать ЛЮБОЙ из пунктов в списке 1, т.е. 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 голосов
/ 08 мая 2019

Оператор %in% сообщит вам, какие (как логические) значения в первом списке находятся где-то во втором списке.

Функция match скажет вам, где во втором списке каждый элемент 1-го списка находится с NA для тех, кто не во 2-м списке:

list1 %in% list2
# [1]  TRUE FALSE FALSE FALSE
match(list1, list2)
# [1]  3 NA NA NA
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...