我想在变量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)
任何帮助?
由于
答案 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