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

标签 r algorithm subset

<分区>

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

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

关于r - 在 r 中的数据框中搜索字符串的快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36521971/

相关文章:

r - 如何选择出现在多个组中的个体?

rbind 命名向量到不同长度的矩阵

r - 根据数据帧的所有行检查向量的每个元素

Python Wordle : determine if a given string matches to a correct anagram based on position score

database - 'tag' 的算法和数据结构或基于关键字的大数据集查询?

r - ggplot2饼图标签的错误位置

algorithm - 行列式法与三角形的叉积面积

r - 获取列的中位数,其中另一列的值为 R 中的 1

python - 子集 Python DataFrame

r - 根据 R 中的条件(值)对嵌套列表进行子集化