Применяйте регулярные выражения для сравнения значений во фреймах данных различной длины в R

Я пытаюсь применить регулярное выражение для сопоставления значений в двух фреймах данных различной длины в R. Моя цель - сохранить только те значения, которые соответствуют регулярному выражению в обоих фреймах данных.

Примером набора данных будет:

a<-c('item1','item2','item4')
b<-c('item1','\t item2','item3','item4')

Я пытался сделать grepl(a$. , b$.) но это работает только для "первого" ряда. Просто для пояснения, значения в двух столбцах имеют общее имя ядра, но могут быть небольшие различия, поэтому мне нужно какое-то регулярное выражение.

Если бы код работал, я бы получил, что новый объект 'c', который также может быть фильтрованной версией a, будет равен

c<-c('item1','item2','item4')

Мир тебе

1 ответ

Решение

Мы могли бы paste элементы "а" для одного шаблона выражения и использовать его в grep

grep(paste(a, collapse = "|"), b, value = TRUE)
Другие вопросы по тегам