我有多个采购数据库,我需要在其中运行我构建的“关键字”列表来识别某些产品,如果有匹配,我想将产品标记到手术类别。
这是一个例子。
采购数据库(实际上我有超过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
in the kw
数据框。
现在我能够使用以下代码实现所需的结果:
d$match <- ifelse(d$cat <- grepl(paste(kw$kw,collapse="|"), d$name,ignore.case = TRUE) == "TRUE","SS_Bandelette","-")
但这段代码并不是很高效,因为我有大约 350 个关键字,它们映射到大约 30 个不同的类别。我可以使用什么代码来自动返回类别d
dataframe 如果我的关键字之一被触发?
非常感谢您的帮助。
Phil