【问题标题】:Quick way to search strings in a dataframe in r [duplicate]在r中搜索数据框中字符串的快速方法[重复]
【发布时间】:2016-04-09 19:59:01
【问题描述】:

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

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),])
}

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

我想知道是否有人有更好的解决方案。

【问题讨论】:

  • 你想要matchh1 %in% f

标签: r algorithm subset


【解决方案1】:

这应该比 for 循环快得多:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-03
    • 2014-09-19
    • 1970-01-01
    • 2016-09-18
    • 2011-03-01
    • 2013-01-20
    • 2013-01-06
    • 2010-12-18
    相关资源
    最近更新 更多