【发布时间】:2017-02-14 19:10:34
【问题描述】:
我需要根据“关键字”为新列分配值。我做了一些简单的试验,如下所示。规则是我需要将所有包含“广告”或“营销”的关键字标记为“营销”。
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 中同时运行所有规则,或者我应该编写一个循环来执行此操作。
【问题讨论】:
-
使用
paste折叠向量,即as.integer(grepl(paste(rule, collapse="|"), sample$keyword))
标签: r text data-manipulation grepl