Как я могу проверить, есть ли какой-либо элемент из определенного столбца одного массива в тексте в определенном столбце другого массива в R? - PullRequest
0 голосов
/ 10 мая 2019

Во-первых: у меня есть вектор данных - столбец одного фрейма данных (назовем его вектором А).Второе: у меня также есть второй фрейм данных со столбцом, содержащим аналогичные данные (вектор B).В-третьих: мне нужно проверить, находится ли какой-либо элемент из вектора A внутри строк (элементов) вектора B.

Например: vector A = c("A10", "A25", "A87") Вектор B = c("strain A8", "strain A25", "strain A35") Результат: FALSE, TRUE, FALSE

Ответы [ 2 ]

1 голос
/ 10 мая 2019

Можно указать совпадение подстроки с grepl

grepl(paste(A, collapse="|"), B)
#[1] FALSE  TRUE FALSE

Или, если это должно быть поэлементное сравнение, можно использовать str_detect (Векторизация по строке и шаблону)

library(stringr)
str_detect(B, A)
#[1] FALSE  TRUE FALSE

Данные

A <-  c("A10", "A25", "A87") 
B <- c("strain A8", "strain A25", "strain A35")
0 голосов
/ 10 мая 2019

Выше работает, если будет достаточно результата bool.Если вам нужен фактический сопоставленный элемент, вы можете использовать метод stringr str_subset, например:

library(stringr)
str_subset(B, A)

, который возвращает:

"strain A25"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...