2016-04-09 2 views
1

У меня есть вектор содержит некоторые строки, как этотБыстрый способ поиска строк в dataframe в г

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 ... 
    ... 

Мое решение использовать цикл, чтобы пройти через каждый пункт в е затем использовать Grep, чтобы найти строки, которые я хочу. И используйте rbind() для объединения строк.

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

Однако мой набор данных действительно большой, и это требует навсегда найти все строки, которые я хочу.

Мне интересно, есть ли у кого-то лучшее решение.

+3

Вы хотите 'match' или' h1% в% f' –

ответ

1

Это должно быть намного быстрее, чем цикл:

df[df$h1 %in% f,] 
# h1 h2 
#1 a 20 
#2 a 50 
#3 a 60 
Смежные вопросы