es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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!

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como traductor de español de documentos de TI, puede utilizar las funciones starts_with() y ends_with() del paquete dplyr para seleccionar columnas específicas en r utilizando regex. Por ejemplo, para seleccionar las variables que no contienen age 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)

Comments are closed.