根据多个负面条件子集数据帧

时间:2014-03-23 18:23:22

标签: r

我想将数据框子集

> head(SH)

  V11       yr  mo dy
1 US009239 1941  2 14
2 US009239 1941  2 14
3 US009239 1941  2 14
4 US009239 1941  2 15
5 US009239 1941  2 15
6 US009239 1941  2 15

以这种方式

test <- subset(SH,SH$yr!=yrmin & SH$mo !=momin)

,其中

> unique(SH$yr)
[1] 1941 1940

> unique(SH$mo)
[1]  2  1 12

momin =2
yrmin =1941

无论如何,我得到的是

unique(test$yr)
[1] 1940

> unique(test$mo)
[1] 12

意味着子集函数不会同时考虑2个条件。

非常感谢

1 个答案:

答案 0 :(得分:1)

如果你想将逻辑语句与布尔运算符结合起来,并且不想使用标准评估,即[,那么我建议查看Hadley dplyr的新包,例如

library(dplyr)

filter(iris, Sepal.Length != 4 & Sepal.Width != 4)

# or equivalently
filter(iris, Sepal.Length != 4, Sepal.Width != 4)

事实上,我建议无论如何都要看dplyr:它真棒!