Ich möchte mehrere Spalten anhand ihrer Namen mit einem Regex Ausdruck auswählen. Ich versuche es mit der Piping-Syntax des dplyr
-Pakets. Ich habe die anderen Themen überprüft, aber nur Antworten zu einer einzelnen Zeichenfolge gefunden.wählen Sie Spalten basierend auf mehreren Zeichenfolgen mit dplyr enthält()
Mit Base R:
library(dplyr)
mtcars[grepl('m|ar', names(mtcars))]
### mpg am gear carb
### Mazda RX4 21.0 1 4 4
### Mazda RX4 Wag 21.0 1 4 4
Allerdings ist es nicht mit der Auswahl arbeiten/enthält Art und Weise:
mtcars %>% select(contains('m|ar'))
### data frame with 0 columns and 32 rows
Was ist los?
Danke @akrun, ich fühle mich jetzt blöd :-). Aber eine Frage, immer noch: Warum sollten wir sogar contains() verwenden, wenn matches() das Gleiche und noch besser macht? – agenis
@agenis Es gibt mehrere Optionen in '? Select' für die Flexibilität der Verwendung, denke ich. 'contains' nimmt eine einzelne Zeichenkette, aber wenn Sie diesen Regextyp-Abgleich durchführen, ist es besser, 'matches' zu verwenden ... – akrun
@agenis Weil Sie vielleicht". " und muss nicht darüber nachdenken, wie man es in einem regulären Ausdruck zu entkommen – hadley