Cómo seleccionar columnas específicas en r usando regex.
Debido a mi pobre conocimiento de regex, no sé cómo seleccionar columnas específicas en R utilizando regex.
Aquí hay un ejemplo corto. Tengo un dataframe df que tiene muchas variables.
a = c('1.age4150', '2.age5160', '3.age6170', '4.age7180',
'5.age120', '6.age2130', '7.age3140', '8.ageupwith65', '9.agelo65', '10.PM25')
df = matrix(ncol = 10, nrow = 1) %>% as_tibble()
colnames(df) = a
df
Quiero seleccionar variables específicas usando select() y matches() del paquete dplyr.
La regex debe seguir las siguientes condiciones:
Los nombres de las variables no deben contener age y _ al mismo tiempo.
En mi vista, primero busco nombres de variables que contengan age y _ al mismo tiempo y luego la selecciono al revés, pero fallé. Algo como esto:
df %>% select(!matches(‘age&_’))
El resultado final debería ser así:
df_expected = df %>% select(8.ageupwith65
, 9.agelo65
, 10.PM2_5
)
¡Cualquier ayuda será muy apreciada!
davy.ai
Como traductor de español de documentos de TI, puede utilizar las funciones
starts_with()
yends_with()
del paquetedplyr
para seleccionar columnas específicas enr
utilizando regex. Por ejemplo, para seleccionar las variables que no contienenage
y_
al mismo tiempo, puede utilizar el siguiente código:df %>% select(!starts_with("age"), !ends_with("_"))
El resultado final debe ser similar a esto:
df_expected = df %>% select(
8.ageupwith65
,9.agelo65
,10.PM2_5
)