NA es el dato missing de R. Su comportamiento en general depende de las
diferentes opoeraciones (+,mean,etc... ) muchas de ellas permiten un
tratamiento especial para los NAs. Así, si comparas un dato NA(missing)
con un número, su resultado es NA(missing), pues no se conoce uno de los
operandos.
Echale un vistazo a NAm NaN en el paquete base.
Jorge.
El 28/01/10 07:03, David A.C. escribió:>
> Hola a todos,
>
> ¿alguien podría explicarme por qué en una asignación en el término de la
izquierda no es necesario "!is.na(...)", mientras que en el término de
la derecha sí?
>
> En general, ¿cómo funcionan los NA's?, es decir, ¿cuándo hay que
tenerlos en cuenta y cuándo no?
>
> Pongo un ejemplo:
>
> a<-c(1:5,NA,7:9,NA)
>
b<-c("a","b","c","d","e","f","g","h","i","j")
> c<-data.frame(b,a)
> c
>
> # b a
> #1 a 1
> #2 b 2
> #3 c 3
> #4 d 4
> #5 e 5
> #6 f NA
> #7 g 7
> #8 h 8
> #9 i 9
> #10 j NA
>
> c$b[c$a<7]<-"a" # EN LA FILA 6 COMO HAY UN NA, NO SE PONE
"a" EN LA COLUMNA b
> c
>
> # b a
> #1 a 1
> #2 a 2
> #3 a 3
> #4 a 4
> #5 a 5
> #6 f NA
> #7 g 7
> #8 h 8
> #9 i 9
> #10 j NA
>
> aux<-c[c$a<8,] # ME SELECCIONA LOS QUE SON<8, PERO ADEMÁS ME PONE
TANTAS FILAS CON NA's COMO NA's HAY EN EL DATA.FRAME!
> aux
>
> # b a
> #1 a 1
> #2 a 2
> #3 a 3
> #4 a 4
> #5 a 5
> #NA<NA> NA
> #7 g 7
> #NA.1<NA> NA
>
> aux<-c[c$a<8& !is.na(c$a),] # SI PONGO "&
!is.na(c$a)", ME SELECCIONA EXACTAMENTE LO QUE QUERÍA!
> aux
>
> # b a
> #1 a 1
> #2 a 2
> #3 a 3
> #4 a 4
> #5 a 5
> #7 g 7
>
> Gracias por todo,
>
> David.
>
>
> _________________________________________________________________
>
>
> [[alternative HTML version deleted]]
>
>
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es