2016-04-09 30 views
1

快捷方式我有一个载体包含一些字符串这样搜索字符串的数据帧中的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),]) 
} 

但是,我的数据集真的很大,这需要永远找到我想要的所有行。

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

+3

你想在'%F' match'或'H1% –

回答

1

这应该是比一个更快的for循环:

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