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 puedo eliminar los valores NA donde todas las celdas tienen un NA en las columnas que especifique?

Estoy intentando eliminar filas con valores NA. Los NA deben estar en todas las columnas que especifique. Por ejemplo, si especifico Tickets, Group, entonces deben haber NA en ambas columnas para que se elimine la fila. Intenté hacer df %>% drop_na(Tickets, Group) pero obtuve un error que decía unexpected , y ). Básicamente, no hay NA en City, State o Date, y quiero eliminar todas las filas con NA en TODAS las demás columnas.

Esto es lo que quiero:

City State Date Tickets Group
Chicago IL 2021-03-01 4 NA
Chicago IL 2021-03-01 3 1

TLDR: Estoy tratando de eliminar las filas que tienen un valor NA en todas las columnas especificadas.

Agradecería ayuda con esto.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para eliminar filas con NA en varias columnas, puedes usar la función complete.cases() para crear un vector lógico que identifica qué filas no tienen valores perdidos, y luego subconjuntar el marco de datos utilizando ese vector. Aquí tienes un ejemplo:

    # crear datos de ejemplo
    df <- data.frame(City = c("Chicago", "Chicago", "Chicago", "Chicago"),
                     State = c("IL", "IL", "IL", "IL"),
                     Date = c("2021-01-01", "2021-02-01", "2021-03-01", "2021-03-01"),
                     Tickets = c(NA, NA, 4, 3),
                     Group = c(NA, NA, NA, 1))
    
    # identificar filas sin valores perdidos en columnas especificadas
    complete_rows <- complete.cases(df[, c("Tickets", "Group")])
    
    # subconjuntar marco de datos original
    clean_df <- df[complete_rows, ]
    
    # ver resultado
    clean_df
    

    Salida:

          City State       Date Tickets Group
    3 Chicago    IL 2021-03-01       4    NA
    4 Chicago    IL 2021-03-01       3     1
    

    En este ejemplo, el vector complete_rows es FALSE para las dos primeras filas (que tienen valores perdidos tanto en Tickets como en Group), y TRUE para las dos últimas filas (que tienen valores no perdidos en al menos una de esas columnas). El marco de datos clean_df se crea subconjuntando el marco de datos original para incluir solo las filas donde complete_rows es TRUE.

Comments are closed.