Применяйте регулярные выражения для сравнения значений во фреймах данных различной длины в 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)