R - 对数据帧中的行进行子集化,以用于向量中的列值

时间:2015-07-23 03:57:37

标签: r

有一个data.frame,df如下

id | name | value
1  | team1 | 3
1  | team2 | 1
2  | team1 | 1
2  | team2 | 4
3  | team1 | 0
3  | team2 | 6 
4  | team1 | 1
4  | team2 | 2 
5  | team1 | 3
5  | team2 | 0 

我们如何对数据帧进行子集化以获取所有id值为2:4的行?

我们可以像df[,df$id >= 2 & df$id <= 4]那样有条件地申请。但有没有办法直接使用像ids <- c(2:4)这样的整数范围向量来对数据帧进行子集化?

执行此操作的一种方法是df[,df$id >= min(ids) & df$id <= max(ids)]

有更优雅的R方式吗?

1 个答案:

答案 0 :(得分:2)

已经提到了最典型的方式,但使用match

也是如此
with(df, df[match(id, 2:4, F) > 0, ])

或类似的

with(df, df[is.element(id, 2:4), ])