我需要根据“关键字”为新列指定值。我做了一些简单的试验,如下所示。规则是我需要将包含“广告”或“营销”的所有关键字标记为“营销”。
keyword <- c("advertising plan",
"advertising budget",
"marketing plan",
"marketing budget",
"hr plan",
"hr budget",
"operation plan",
"operation budget")
indicator <- c(1,0,0,1,1,1,0,1)
sample <- cbind(keyword,indicator)
我曾经使用这种方法进行标记。
sample$topic <- ifelse(grepl("(marketing|advertising)",sample$keyword),"Marketing",0)
但是现在,我有更长的规则,它们存储为另一个字符串因子,如下所示:
rule <- c("marketing", "advertising", "word 3", "word 4" .... "word 500")
很难在前面的代码中逐个输入规则。我想知道是否有办法在R中一起运行所有规则,或者我应该编写一个循环来执行此操作。
答案 0 :(得分:0)
我们可以将vector
合并为|
中pattern
的分隔符grepl
的单个字符串
ifelse(grepl(paste(rule, collapse="|"), sample$keyword), "Marketing", 0)