2016-04-09 6 views
1

Ich habe einen Vektor enthält einige Strings wie dieserSchnell Weg Strings in einem Datenrahmen in r suchen

f <- c("a","b","c") 

Und ich habe einen Datenrahmen (df), die einige Spalten enthält:

h1 h2 ... 
1 a 20 ... 
2 a 50 ... 
3 a 60 ... 
4 e 70 ... 
5 e 80 ... 
    ... 

Jetzt versuche ich, Code zu schreiben, um die Zeilen herauszufinden, die die gleiche Zeichenfolge enthalten, die ich im Vektor habe.

heißt: Beispielausgabe

h1 h2 ... 
1 a 20 ... 
2 a 50 ... 
3 a 60 ... 
    ... 

Meine Lösung ist eine for-Schleife zu verwenden, um durch jedes Element in f gehen dann grep verwenden, um die Zeilen möchte ich zu finden. Und verwenden Sie rbind(), um die Zeilen zusammenzufügen.

Allerdings ist mein Dataset wirklich groß und das dauert ewig, um alle Zeilen zu finden, die ich möchte.

Ich frage mich, ob jemand eine bessere Lösung hat.

+3

Sie wollen 'match' oder' h1% in% f' –

Antwort

1

Dies sollte viel schneller als eine for-Schleife sein:

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