По сути, у меня есть список компаний (помеченный как список A), и у меня есть большой контрольный список (помеченный как список B). Я хочу спросить, что если элементы списка A также есть в списке B. Некоторые идентичные компании имеют небольшую разницу, поэтому я должен использовать нечеткое сопоставление. К счастью, я успешно нашел элементы, которые находятся в A, но не в B. Но я не знаю, как удалить его, не вызывая хаоса. (Кажется, что это легко вызывает граничную ошибку)
company <- read.table(text = "
CompanyName
'MERCK SHARP & DOHME CORPORATION'
'GILEAD SCIENCES INC'
'BOEHRINGER INGELHEIM PHARMACEUTICALS, INC.'
'ABBVIE, INC.'
'JANSSEN SCIENTIFIC AFFAIRS, LLC'
'ASAHI INTECC CO., LTD.'
", header = TRUE, stringsAsFactors = FALSE)
Report <- c('MERCK ','BOEHRINGER INGELHEIM','ROCHE','ASAHI')
sapply(lapply(Report, function(x) agrepl(x, company$CompanyName, max.distance=0.1)), max)
Выше приведены мои воспроизводимые данные и мой нечеткий код соответствия, который возвращает
[1] 1 1 0 1
Но я не знаю, как удалитьКомпания на этой позиции 0. Является ли беговая петля на каждом элементе хорошей идеей? Я хочу, чтобы мой результат был
'MERCK ','BOEHRINGER INGELHEIM','ASAHI'