我正在寻找与MySQL中的“where'var'(...)”语句相似的东西。
我的代码如下:
data<-data.frame(id=10001:10030,cc1=rep(c("a","b","c"),10))
attach(data)
data$new<-ifelse(cc1=="a"|cc1=="b",1,0)
在ifelse中包含字符串列表而不是使用|的更好方法是什么?
类似于:ifelse(cc1 in ('a','b'),1,0)
非常感谢!
答案 0 :(得分:2)
ifelse(cc1 %in% c("a", "b"), 1, 0)
或者简单地说:
as.numeric(data$cc1 %in% c("a", "b"))
尽管避免使用attach
。它让事情变得混乱。
答案 1 :(得分:1)
我只是把这个扔进混音
> (!as.numeric(data$cc1) > 2)+0
## [1] 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0