Estate atento ya que en esta noticia vas a hallar la respuesta que buscas.
Solución:
Supongo que desea eliminar filas que son todas NA. Entonces, puedes hacer lo siguiente:
data <- rbind(c(1,2,3), c(1, NA, 4), c(4,6,7), c(NA, NA, NA), c(4, 8, NA)) # sample data
data
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 1 NA 4
[3,] 4 6 7
[4,] NA NA NA
[5,] 4 8 NA
data[rowSums(is.na(data)) != ncol(data),]
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 1 NA 4
[3,] 4 6 7
[4,] 4 8 NA
Si desea eliminar filas que tienen al menos un NA, simplemente cambie la condición:
data[rowSums(is.na(data)) == 0,]
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 6 7
Si tiene filas vacías, no NA, puede hacer:
data[!apply(data == "", 1, all),]
Para eliminar ambos (NA y vacío):
data <- data[!apply(is.na(data) | data == "", 1, all),]
Aquí están algunas dplyr
opciones:
# sample data
df <- data.frame(a = c('1', NA, '3', NA), b = c('a', 'b', 'c', NA), c = c('e', 'f', 'g', NA))
library(dplyr)
# remove rows where all values are NA:
df %>% filter_all(any_vars(!is.na(.)))
df %>% filter_all(any_vars(complete.cases(.)))
# remove rows where only some values are NA:
df %>% filter_all(all_vars(!is.na(.)))
df %>% filter_all(all_vars(complete.cases(.)))
# or more succinctly:
df %>% filter(complete.cases(.))
df %>% na.omit
# dplyr and tidyr:
library(tidyr)
df %>% drop_na
Recuerda algo, que tienes permiso de añadir una estimación objetiva si te ayudó.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)