在 r 中的数据框中搜索字符串的快速方法

Quick way to search strings in a dataframe in r

我有一个向量包含一些像这样的字符串

f <- c("a","b","c")

我有一个包含一些列的数据框 (df):

    h1  h2  ...
1   a   20  ...
2   a   50  ...
3   a   60  ...
4   e   70  ...
5   e   80  ...
  ...

现在我正在尝试编写代码来找出包含与向量中相同字符串的行。

即:样本输出

    h1  h2  ...
1   a   20  ...
2   a   50  ...
3   a   60  ...
  ...

我的解决方案是使用 for 循环遍历 f 中的每个项目,然后使用 grep 查找我想要的行。并使用 rbind() 将行放在一起。

for(item in f){
    newdf <- rbind(newdf, df[grep(item, df$h1),])
}

但是我的数据集非常大,这需要很长时间才能找到我想要的所有行。

不知道有没有人有更好的解决办法

这应该比 for 循环快得多:

df[df$h1 %in% f,]
#  h1 h2
#1  a 20
#2  a 50
#3  a 60