Eliminar filas con NA en una columna en R

Sheeraz Gul 21 junio 2023
  1. Eliminar filas con NA en una columna usando el método is.na() en R
  2. Eliminar filas con NA en una columna usando el método complete.cases() en R
  3. Eliminar filas con NA en una columna usando el método drop_na() de la biblioteca Tidyr en R
Eliminar filas con NA en una columna en R

Las columnas en un marco de datos pueden tener valores vacíos representados por la palabra clave NA. Este tutorial demuestra cómo eliminar las filas que contienen un valor NA en una columna en R.

Eliminar filas con NA en una columna usando el método is.na() en R

El método is.na() buscará los valores NA en un marco de datos y eliminará las filas de valores NA. El proceso se da a continuación:

  1. En primer lugar, cree el marco de datos.
  2. Seleccione la columna basada en los valores NA y las filas que desea eliminar.
  3. Cree una negación con el método is.na() sin pasar por el parámetro dataframe$columnname.
  4. El método eliminará las filas al verificar la columna dada si contiene un valor NA.

Probemos un ejemplo siguiendo los pasos anteriores.

Ejemplo:

Delftstack = data.frame(Name=c('Jack', 'John', 'Mike', 'Michelle', 'Jhonny'),
                  LastName=c('Danials', 'Cena', 'Chandler', 'McCool', 'Nitro'),
                  Id=c(101, 102, NA, 104, NA),
                  Designation=c('CEO', 'Project Manager', 'Senior Dev', 'Junior Dev', 'Intern'))

print('The dataframe before removing the rows:-')
print(Delftstack)

print('The dataframe after removing the rows:-')
Delftstack[!is.na(Delftstack$Id),]

El código anterior eliminará las filas en función de los valores NA en la columna Id.

Producción :

[1] "The dataframe before removing the rows:-"
      Name LastName  Id     Designation
1     Jack  Danials 101             CEO
2     John     Cena 102 Project Manager
3     Mike Chandler  NA      Senior Dev
4 Michelle   McCool 104      Junior Dev
5   Jhonny    Nitro  NA          Intern

[1] "The dataframe after removing the rows:-"
      Name LastName  Id     Designation
1     Jack  Danials 101             CEO
2     John     Cena 102 Project Manager
4 Michelle   McCool 104      Junior Dev

Eliminar filas con NA en una columna usando el método complete.cases() en R

El método complete.cases() funciona de manera similar al método is.na(). El método complete.cases buscará los valores NA en un marco de datos y eliminará las filas que contengan este valor.

El proceso es similar a los pasos descritos anteriormente, la única diferencia es que no usamos la negación con complete.cases().

Ejemplo:

Delftstack = data.frame(Name=c('Jack', 'John', 'Mike', 'Michelle', 'Jhonny'),
                  LastName=c('Danials', 'Cena', 'Chandler', 'McCool', 'Nitro'),
                  Id=c(101, 102, NA, 104, NA),
                  Designation=c('CEO', 'Project Manager', 'Senior Dev', 'Junior Dev', 'Intern'))

print('The dataframe before removing the rows:-')
print(Delftstack)


print('The dataframe after removing the rows:-')
Delftstack[complete.cases(Delftstack$Id),]

El código anterior eliminará las filas según los valores NA en la columna Id.

Producción :

[1] "The dataframe before removing the rows:-"
      Name LastName  Id     Designation
1     Jack  Danials 101             CEO
2     John     Cena 102 Project Manager
3     Mike Chandler  NA      Senior Dev
4 Michelle   McCool 104      Junior Dev
5   Jhonny    Nitro  NA          Intern

[1] "The dataframe after removing the rows:-"
      Name LastName  Id     Designation
1     Jack  Danials 101             CEO
2     John     Cena 102 Project Manager
4 Michelle   McCool 104      Junior Dev

Eliminar filas con NA en una columna usando el método drop_na() de la biblioteca Tidyr en R

El drop_na() de la biblioteca tidyr eliminará las filas en función de la columna de valores NA. Primero, debe instalar la biblioteca tidyr si aún no está instalada.

Ejecute el siguiente código para instalar el paquete:

install.packages('tidyverse')

Aunque la salida del código es similar a los métodos anteriores, el proceso es ligeramente diferente. Usamos la sintaxis dataframe %>% drop_na(column) para eliminar las filas.

Ejemplo:

library(tidyr)
Delftstack = data.frame(Name=c('Jack', 'John', 'Mike', 'Michelle', 'Jhonny'),
                  LastName=c('Danials', 'Cena', 'Chandler', 'McCool', 'Nitro'),
                  Id=c(101, 102, NA, 104, NA),
                  Designation=c('CEO', 'Project Manager', 'Senior Dev', 'Junior Dev', 'Intern'))

print('The dataframe before removing the rows:-')
print(Delftstack)

print('The dataframe after removing the rows:-')
Delftstack %>% drop_na(Id)

El código anterior funcionará de manera similar a los métodos anteriores.

Producción :

[1] "The dataframe before removing the rows:-"
      Name LastName  Id     Designation
1     Jack  Danials 101             CEO
2     John     Cena 102 Project Manager
3     Mike Chandler  NA      Senior Dev
4 Michelle   McCool 104      Junior Dev
5   Jhonny    Nitro  NA          Intern

[1] "The dataframe after removing the rows:-"
      Name LastName  Id     Designation
1     Jack  Danials 101             CEO
2     John     Cena 102 Project Manager
4 Michelle   McCool 104      Junior Dev

También existen métodos como na.omit(), filter(), etc., que se utilizan para eliminar filas en función de los valores NA que se encuentran en cualquier columna. Eliminarán los valores en función de varias columnas, no de una columna.

Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

Artículo relacionado - R Data Frame