poligono para pairs librerias grafico graficas graficar grafica etiqueta ejemplos datos cuadricula r na

para - Contando no NA en un marco de datos; obteniendo respuesta como un vector



poligono en r (4)

Para obtener el total de valores faltantes, use sum (is.na (x)) y para la columna use colSums (is.na (x)) donde x es variable y contiene un conjunto de datos

Digamos que tengo el siguiente R data.frame ZZZ :

( ZZZ <- structure(list(n = c(1, 2, NA), m = c(6, NA, NA), o = c(7, 8, 8)), .Names = c("n", "m", "o"), row.names = c(NA, -3L), class = "data.frame") ) ## not run n m o 1 1 6 7 2 2 NA 8 3 NA NA 8

Quiero saber, en forma de un vector, cuántas no-NA tengo. Quiero que la respuesta esté disponible para mí como:

2, 1, 3

Cuando uso la length(ZZZ) del comando length(ZZZ) , obtengo 3 , que por supuesto es el número de vectores en el cuadro de datos , una información suficientemente valiosa.

Tengo otras funciones que operan en este data.frame y me dan respuestas en forma de vectores, pero, pend-it, la longitud no funciona así.


Prueba esto:

# define "demo" dataset ZZZ <- data.frame(n=c(1,2,NA),m=c(6,NA,NA),o=c(7,8,8)) # apply the counting function per columns apply(ZZZ, 2, function(x) length(which(!is.na(x))))

Habiendo corrido

> apply(ZZZ, 2, function(x) length(which(!is.na(x)))) n m o 2 1 3

Si realmente insiste en devolver un vector, puede usar as.vector , por ejemplo, definiendo esta función:

nonNAs <- function(x) { as.vector(apply(x, 2, function(x) length(which(!is.na(x))))) }

Simplemente nonNAs(ZZZ) ejecutar nonNAs(ZZZ) :

> nonNAs(ZZZ) [1] 2 1 3


Si solo desea la suma total de NA en general, entonces sum () con! Is.na () lo hará:

ZZZ <- data.frame(n = c(1, 2, NA), m = c(6, NA, NA), o = c(7, 8, 8)) sum(!is.na(ZZZ))


colSums(!is.na(x))

Vectorización ftw.