2016-04-09 32 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