我有以下数据框
id val
a 1
a 2
a 3
b 4
b 5
c 6
我想使用id的子集找到该数据帧的子集。我知道如果子集标准仅为1的值,我可以执行以下操作。
y = subset(x,id=='a')
但是,如果我有一组几个id,我如何得到一个子集。例如c('a','b')。做
y = subset(x,id==c('a','b'))
没有给我我想要的东西。
答案 0 :(得分:5)
您可以使用逻辑运算符进行子集化,例如
y=subset(x,id=='a' | id=='b')
或者您可以使用%in%
运算符:
y=subset(x,id %in% c('a','b'))
答案 1 :(得分:3)
尝试使用%in%运算符。
> id<-c("a","a","a","b","b","c")
> val<-c(1,2,3,4,5,6)
> x<-data.frame(cbind(id,val))
> subset(x,id %in%c('a','b'))
id val
1 a 1
2 a 2
3 a 3
4 b 4
5 b 5