我有一个数据框,我想制作满足多个条件的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"),]
但是可以在一行中包含所有多个条件吗?
答案 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))