filtros - funcion mutate en r
seleccione columnas basadas en mĂșltiples cadenas con dplyr contiene() (1)
Quiero seleccionar varias columnas basadas en sus nombres con una expresión de expresiones regulares . Estoy tratando de hacerlo con la sintaxis de tuberías del paquete dplyr
. Revisé los otros temas, pero solo encontré respuestas sobre una sola cadena.
Con 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
Sin embargo, no funciona con el modo seleccionar / contiene:
mtcars %>% select(contains(''m|ar''))
### data frame with 0 columns and 32 rows
Que pasa
Puedes usar matches
mtcars %>%
select(matches(''m|ar'')) %>%
head(2)
# mpg am gear carb
#Mazda RX4 21 1 4 4
#Mazda RX4 Wag 21 1 4 4
De acuerdo con la ?select
documentación
''matches (x, ignore.case = TRUE)'': selecciona todas las variables cuyo nombre coincide con la expresión regular ''x''
Aunque contains
trabajo con una sola cadena
mtcars %>%
select(contains(''m''))