En una matriz, si faltan algunos datos grabados como `NA.Preguntas sobre datos faltantes
- ¿cómo podría eliminar las filas con
NA
en la matriz? - ¿Puedo usar
na.rm
?
En una matriz, si faltan algunos datos grabados como `NA.Preguntas sobre datos faltantes
NA
en la matriz?na.rm
?Si desea eliminar filas que contienen NA, puede usar apply() para aplicar una función rápida para verificar cada fila. Por ejemplo, si su matriz es x,
goodIdx <- apply(x, 1, function(r) !any(is.na(r)))
newX <- x[goodIdx,]
creo na.rm por lo general sólo funciona dentro de las funciones, por ejemplo para la significa función. Me gustaría ir con complete.cases: http://stat.ethz.ch/R-manual/R-patched/library/stats/html/complete.cases.htm
digamos que tiene la siguiente matriz de 3x3-:
x <- matrix(c(1:8, NA), 3, 3)
> x
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 NA
entonces se puede obtener los casos completos de esta matriz con
y <- x[complete.cases(x),]
> y
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
La función complete.cases -function devuelve un vector de valores de verdad que indica si un caso está completo o no:
> complete.cases(x)
[1] TRUE TRUE FALSE
y luego se indexa las filas de la matriz x y añadir el "" quiere decir que desea que todas las columnas.
na.omit()
tomará matrices (y marcos de datos) y devolverá solo aquellas filas sin ningún valor de NA - lleva un paso más adelante complete.cases()
al eliminar las filas FALSAS por usted.
> x <- data.frame(c(1,2,3), c(4, NA, 6))
> x
c.1..2..3. c.4..NA..6.
1 1 4
2 2 NA
3 3 6
> na.omit(x)
c.1..2..3. c.4..NA..6.
1 1 4
3 3 6