从变量

时间:2018-06-13 06:25:21

标签: r grepl

我想在变量x上创建一个虚拟变量y条件,其中x是一个包含文本的描述性变量。如果x有某些单词为" good"或者"坏"或者"丑陋"那么我想要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)

任何帮助?

由于

1 个答案:

答案 0 :(得分:1)

您需要使用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
相关问题