从变量中选择某些词

choose certain words from a variable

我想在变量 x 上创建一个虚拟变量 y 条件,其中 x 是一个包含文本的描述性变量。如果 x 有某些单词 "good" 或 "bad" 或 "ugly" 那么我想要 y=1 否则 y=0.

它适用于单个单词

df$y <- ifelse(grepl("\<good\>",df$x)== TRUE,1,0)

但我不知道如何为单词列表做这件事。我试过了,但它给出的所有 y 值都等于零

keywords <- c("good","bad","ugly")

df$y <- ifelse(paste0('\b',keywords,'\b',df$x)== TRUE,1,0)

有什么帮助吗?

谢谢

是否需要使用grep??

这可能是一个解决方案:

df <- data.frame(x=c("good", "bad", "bad", "ugly", "something"))

df
          x
1      good
2       bad
3       bad
4      ugly
5 something

 df$y <- ifelse(df$x %in% c("good", "bad", "ugly"), 1, 0)

df
              x y
    1      good 1
    2       bad 1
    3       bad 1
    4      ugly 1
    5 something 0