У меня есть несколько баз данных для закупки, в которых мне нужно запустить список «ключевых слов», которые я создал для идентификации определенных продуктов, и если есть совпадение, я хотел бы пометить продуктов в хирургическую категорию.R частичное соответствие строк и возвращаемое значение (в R)
Вот пример.
базы данных закупок (на самом деле у меня есть более чем 2,000,000 линии перейти):
d<-data.frame(prod_desc=c("BANDELETTE TVTO-OBTRYX HALO", "BANDELETTE MINI ARC PRECISES", "BANDELETTE D'ANALYSE POUR GLYCEMIE", "DIACH. BANDELETTE STER 19MM X 72MM","SLING MALE SYSTEM","DIACHILON","AIGUILLE","GANT","LABEL","CRAYON"),label=1:10)
Список ключевых слов и возвращаемого значения (фактический список гораздо больше):
kw<-data.frame(kw=c("bandelette","tvt","bande transvaginale","sling system","argus"),category="ss_bandelette")
Я хотел бы чтобы найти продукты prod_desc
, содержащие строку ключевых слов kw
, и если есть совпадение, я хотел бы добавить столбец в фрейм данных d
, который вернет category
, связанный с kw
, в kw
dataframe.
Пока я был в состоянии достичь желаемого результата, используя следующий код:
d$match <- ifelse(d$cat <- grepl(paste(kw$kw,collapse="|"), d$name,ignore.case = TRUE) == "TRUE","SS_Bandelette","-")
Но этот код не очень эффективен, так как у меня есть около 350 ключевых слов, которые сопоставляются с около 30 различных категорий. Какой код я могу использовать для автоматического возврата категории в фреймворк d
, если срабатывает одно из ключевых слов?
Большое спасибо за помощь.
Phil
@DarshanBaral Я думаю, этот вопрос по-другому. даже я думал то же самое раньше. Я отправил ответ –