Как получить строковый вектор в другом строковом в R - PullRequest
2 голосов
/ 08 апреля 2019

Предположим, у меня есть два строковых вектора:

s1<-c("ab", "cd-e", "hij")
s2<-c("0ab12345", "xyzcd-e", "uvwxyz132", "13216469", "%qrst012")

. Мне нужно было найти элементы в s1, которые появляются в s2, таким образом, приведенный выше пример даст вывод

"ab", "cd-e"

Ответы [ 3 ]

3 голосов
/ 08 апреля 2019

Используйте Filter с указанной функцией. Пакеты не используются.

Filter(function(x) any(grepl(x, s2)), s1)
## [1] "ab"   "cd-e"
2 голосов
/ 08 апреля 2019

Мы можем grepl сверх s1 для каждого значения в s2 и выбрать, если любое из них равно TRUE.

s1[colSums(sapply(s1, grepl, s2)) > 0]
#[1] "ab"   "cd-e"
0 голосов
/ 08 апреля 2019

Вот один из способов

s1[sapply(s1,function(x) any(grepl(x,s2)))]
[1] "ab"   "cd-e
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...