根据特定列的值对子数据框进行子集

时间:2015-01-20 03:47:11

标签: r subset

这是一个简单的例子,其解决方案对我有很大的帮助。

v.1<- c(5,8,7,2)
v.2<- c("hi", "hello", "hum", "bo")
df<- data.frame(v.1, v.2)
desired.values<- c("hi", "bo")

我想要数据集的所有行,其中v.2采用其中一个所需的值。

期望的输出:

5“hi”

2“bo”

在我的真实数据集中,v.2有超过10000个值,而desired.values包含超过2000个值。

1 个答案:

答案 0 :(得分:2)

您可以尝试data.table

library(data.table)
setkey(setDT(df),v.2)[desired.values]

或使用base R方法

 df[df$v.2 %in% desired.values,]

或者

  df[grep(paste(desired.values, collapse="|"), df$v.2),]
相关问题