选择满足R中多个条件的数据帧索引

时间:2012-09-28 17:48:26

标签: r

我有一个数据框,我想制作满足多个条件的make子集(或只选择那些行),Ex ...

a <-data.frame(a=c("a","a","b","c","b","d"),b=c(1,2,3,4,2,3))
> a
  a b
1 a 1
2 a 2
3 b 3
4 c 4
5 b 2
6 d 3

我想制作列a == a | b和列b = 2 | 3的子集。预期产出

  a b
1 a 2
2 b 3
3 b 2  

我可以做一个像

这样的条件
a[which(a[,"a"]=="a"),]

但是可以在一行中包含所有多个条件吗?

3 个答案:

答案 0 :(得分:8)

a[(a$a %in% c('a', 'b')) & (a$b %in% c(2, 3)), ]

答案 1 :(得分:3)

您可以尝试使用dplyr

a <-data.frame(a=c("a","a","b","c","b","d"),b=c(1,2,3,4,2,3))

library(dplyr)
filter(a, (a == "a" | a == "b") & (b == 2 | b == 3))

输出:

  a b
1 a 2
2 b 3
3 b 2

答案 2 :(得分:1)

子集(a,(%c%c(&#39; a&#39;,&#39; b&#39;))&amp;(b%in%2:3))