我想使用带有类别所有产品类别的字典对购物篮中的产品进行分类。我想特别检查一下购物篮中的产品是否是词典中的一个元素,如果是真的,我想用类别名称(词典)替换该产品。
我将字典导入到csv的列表中,并尝试将购物篮中的产品与%in%进行比较,但这没有用。
BD19jfiles [[i]] $ product $ name返回购物篮的产品。 Pistolets是带有chars(字典)的列表。
l <- length(BD19jfiles)
for(i in 1:l) {
if(BD19jfiles[[i]]$product$name %in% Pistolets){
grepl('Pistolet', BD19jfiles[[i]]$product$name)
}
}
我想用单词“ Pistolet”替换对“ BD19jfiles [[i]] $ product $ name%in%Pistolets”返回true的产品
答案 0 :(得分:2)
我们可以使用lapply
遍历list
,并通过使用grepl
检查该元素中的'PISTOLET'子字符串来更新'name'元素,并将其分配给“ Pistolet “
lapply(BD19jfiles, function(x) {
x$product$name[grepl("PISTOLET", x$product$name)] <- "Pistolet"
x
})
如果词典标识符是Pistolets
lapply(BD19jfiles, function(x) {
x$product$name[x$product$name %in% Pistolets] <- "Pistolet"
x
})
如果它是子字符串,请使用grepl
nm1 <- paste0("\\b(", paste(unlist(Pistolets), collapse="|"), ")\\b")
out <- lapply(BD19jfiles, function(x) {
x$product$name[grepl(nm1, x$product$name)] <- "Pistolet"
x
})
答案 1 :(得分:1)
lapply(BD19jfiles, function(x){
x$product$name=gsub(paste(Pistolets,collapse="|"),"Pistolets",x$product$name)
x
}
在这里,您要将与词典中任何单词匹配的单词更改为Pistolet
。