Accueil > Astuces... > Transformer les valeurs manquantes en un facteur

R

Transformer les valeurs manquantes en un facteur

mardi 29 octobre 2013
Mis à jour le vendredi 6 décembre 2013

La fonction addNAstr est maintenant disponible dans le package questionr (à partir de la version 0.3.0).

Sous R, les valeurs manquantes sont renseignés via la valeur NA.

Selon les fonctions, on peut indiquer à R de prendre en compte ou non ces valeurs manquantes.

Dans le cas d’une variable de type facteur, on peut vouloir considérer ces valeurs manquantes comme une modalité supplémentaire. Cela se fait via la fonction addNA :

Dans ce cas particulier, R va ajouter un niveau supplémentaire au facteur x, ce niveau ayant pour nom la valeur manquante, c’est-à-dire NA.

Si cela ne pose pas de problème pour une grande majorité de fonctions, certaines auront des soucis à gérer la présence d’une valeur manquante dans la liste des modalités.

Une solution consiste alors donner une valeur textuelle à cette modalité additionnelle (par exemple manquant). Une version améliorée de la fonction addNA a même été proposée sur http://stackoverflow.com/a/5817181 [1] :

  1. addNAstr <- function (x, ifany = FALSE, as.string = TRUE)
  2. {
  3. if (!is.factor(x))
  4. x <- factor(x)
  5. if (ifany & !any(is.na(x)))
  6. return(x)
  7. ll <- levels(x)
  8. if (!any(is.na(ll)))
  9. ll <- c(ll, NA)
  10. x <- factor(x, levels = ll, exclude = NULL)
  11. if (is.character(as.string)) {
  12. s <- as.string
  13. as.string <- TRUE
  14. } else
  15. s <- "NA"
  16. if(as.string) levels(x)[is.na(levels(x))] <- s
  17. x
  18. }

Télécharger

Notes

[1Que j’ai légèrement modifiée pour permettre d’indiquer la chaine de caractères de son choix au paramètre as.string.

Répondre à cet article

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Retour haut de page
Site réalisé avec SPIP | Plan du site | Contact | Crédits | Mentions Légales | Suivre la vie du site RSS 2.0
Habillage visuel © Larma par Joseph Larmarange sous Licence Creative Commons Attribution 2.5 License