Foro de debate

Dudas con datos "Nor avaible"

Dudas con datos "Nor avaible"

de Cristina Alonso -
Número de respuestas: 6

Buenas tardes,

estoy trabajando con R haciendo correlacioens, mi tabla matriz tiene bastantes casillas en blanco (no hay muestra), que en R aparecen como NA.

Cuando hago las correlaciones, con varias variables, función "cor", el resultado es NA.

Siguiendo el enlace: https://stat.ethz.ch/R-manual/R-devel/library/stats/html/na.fail.html, he omitido los valores en blanco con la función: "na.omit".....pero ahora no se exactamente qué ha hecho el programa pues me da unos resultados sin NA pero posiblemente se han descolocado los demás resultados. Otra pregunta es: cómo dehago la función "na.omit"?

Alguien me puede ayudar con este tema?


Gracias

En respuesta a Cristina Alonso

Re: Dudas con datos "Nor avaible"

de Manuel Muñoz Márquez -

Buenas:

Cuando una operación aritmética involucra a un NA el resultado siempre es NA y así debe ser 3 + NA no puede ser otra cosa que NA, ya que de lo contrario se podría deducir el valor de NA y ya no sería NA.

> x <- c(2, NA, 4)
> sum(x)
[1] NA

Algunos operadores como sum, mean e incluso cor tienen un argumento opcional (na.rm = na remove) que permite hacer la operación ignorando los valores faltantes

> sum(x, na.rm = TRUE)
[1] 6

na.omit no modifica el conjunto de datos, sino que devuelve otro conjunto de datos omitiendo las filas en las que falte algún dato. Por tanto, el resultado que has obtenido es correcto.

Además, R almacena los conjuntos de datos (y cualquier objeto) en memoria, lo que significa que puedes modificarlos a tu antojo y lo único que se modificará es la copia de los datos que tienes en memoria. Al reiniciar R todo vuelve a estar como estaba. Para que los cambios realizados en los datos se almacenen debes guardarlos expresamente.

Un saludo.

En respuesta a Manuel Muñoz Márquez

Re: Dudas con datos "Not avaible"

de Cristina Alonso -

Muchas gracias Manuel por la respuesta!

Lo haré como me dices con na.rm=TRUE, el comando sería el siguiente:

> cor (z, na.rm=TRUE)

donde "z" es el conjunto de variables que quiero correlacionar, cada una en una columna. Esto estaría bien?

Un saludo!

En respuesta a Manuel Muñoz Márquez

Re: Dudas con datos "Nor avaible"

de Cristina Alonso -

Hola de nuevo Manuel,

no me funciona na.rm me da : error cor(z, na.rm = TRUE) : unused argument (na.rm = TRUE)

si sólo hago cor(z), todo NA:

  1     NA    NA  NA   NA    NA     NA         NA

l.C        NA      1    NA  NA   NA    NA     NA         NA

l.d         NA     NA     1  NA   NA    NA     NA         NA

l.P           NA     NA    NA   1   NA    NA     NA         NA

l.S         NA     NA    NA  NA    1    NA     NA         NA

l.s       NA     NA    NA  NA   NA     1     NA         NA

l.t       NA     NA    NA  NA   NA    NA      1         NA

l.z   NA     NA    NA  NA   NA    NA     NA          1


gracias!

En respuesta a Cristina Alonso

Re: Dudas con datos "Nor avaible"

de Manuel Muñoz Márquez -

Buenas:

En la ayuda de cor aparece el argumento na.rm para cor, pero parece que no lo admite.

Puedes usar cor con el argumento use. Si pones use='pairwise.complete.obs' utiliza todas las parejas para las que existan datos. na.omit omitiría toda la fila y por tanto no usaría ningún dato de la fila del perdido.

> m <- diag(4)
> m[1,1]<-NA
> m[2,3]<-NA
> cor(m, use='pairwise.complete.obs')
     [,1]       [,2] [,3]       [,4]
[1,]   NA         NA   NA         NA
[2,]   NA  1.0000000   NA -0.3333333
[3,]   NA         NA  1.0 -0.5000000
[4,]   NA -0.3333333 -0.5  1.0000000

Un saludo.