providers - tags$style shiny



Quelque chose de bizarre à propos du retour des AN (1)

C'est une question boiteuse je suppose, mais je ne comprends pas ce qui se passe. Si j'y vais:

sum(is.na(census$wd))

Il renvoie 4205

Mais si je pars avec:

sum(census$wd == NA)

Il renvoie "NA"

Je voudrais juste comprendre ce qui se passe. Si je fais str (recensement), wd apparaît comme:

$ wd         : num  NA 0.65 0.65 0.65 0.78 0.78 0.78 0.78 0.78 0.78 ...

Quelqu'un peut-il expliquer pourquoi les codes retournent des sorties différentes? Je vous remercie!


== dans R est une comparaison. Mais vous ne pouvez pas comparer quelque chose à NA dans R comme la citation suivante de ?Comparison Etats de ?Comparison :

Les valeurs manquantes (NA) et les valeurs NaN sont considérées comme non-comparables même à elles-mêmes, de sorte que les comparaisons les impliquant entraîneront toujours NA.

En revanche, is.na indique quels éléments manquent quel que soit leur type. Il renvoie donc un vecteur d'entrées TRUE et FALSE .

> a <- c(NA,1,2,3)
> a == NA
[1] NA NA NA NA

> is.na(a)
[1]  TRUE FALSE FALSE FALSE

c'est pourquoi sum travaille avec is.na (interprétant TRUE=1 et FALSE=0 mais ne peut pas additionner un vecteur de NA (généré par ==NA )





na