IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Sélection et valeurs manquantes


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2003
    Messages
    554
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 554
    Par défaut Sélection et valeurs manquantes
    Ce post pour juste signaler un problème auquel je me suis heurté : lorsque il y a des valeurs manquantes, les sélections peuvent ne pas se faire.
    Voici un petit exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    DF1 <- data.frame(A=c(1,2,1,NA,1,2,2,1,NA),B=c(1,1,1,NA,1,NA,2,2,NA),C=c(NA,1,2,2,2,2,1,NA,1))
    DF1
    DF1[which(DF1$A==2 & DF1$B!=1),]
    DF2 <- data.frame(A=c(1,2,1,NA,1,2,2,1,NA),B=c(1,1,1,0,1,0,2,2,0),C=c(NA,1,2,2,2,2,1,NA,1))
    DF2
    DF2[which(DF2$A==2 & DF2$B!=1),]
    La différence entre DF1 et DF2 est que DF2 contient 0 à la place de NA dans la colonne B.

    En essayant de sélectionner les observations selon le critèrewhich(DF1$A==2 & DF1$B!=1) dans le 1er cas, les observations pour lesquelles B=NA n'apparaissent pas.
    En revanche, je les obtient bien dans le second cas avec des critères identiques.

    Pour avoir le même résultat dans le 1er cas, il faut compliquer le test : which(DF1$A==2 & (!is.na(DF1$B) | DF1$B!=1).

    Ca n'a pas l'air important, mais ça m'oblige à revoir pas mal de programmes à partir de données contenant des valeurs manquantes !

  2. #2
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Par défaut
    Bonjour.
    Je crois que c'est totalement fait exprès de la part de R. Dans which, NA n'est jamais une réponse correcte à une condition, sauf si la condition est is.na(...). Par contre, DF1$A == NA, DF1$A != NA, DF1$A > NA etc. sont toutes systématiquement fausses.
    Donc ta conclusion est la bonne : si tu veux capturer des valeurs manquantes comme des réponses valables, il faut ajouter explicitement le cas is.na(...).

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2003
    Messages
    554
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 554
    Par défaut
    Citation Envoyé par olivier.decourt Voir le message
    Bonjour.
    Je crois que c'est totalement fait exprès de la part de R. Dans which, NA n'est jamais une réponse correcte à une condition, sauf si la condition est is.na(...). Par contre, DF1$A == NA, DF1$A != NA, DF1$A > NA etc. sont toutes systématiquement fausses.
    Donc ta conclusion est la bonne : si tu veux capturer des valeurs manquantes comme des réponses valables, il faut ajouter explicitement le cas is.na(...).
    Toujours de très bon conseils. Merci Olivier

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Select et sélection par valeur
    Par OjBarbare dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 28/05/2007, 14h38
  2. Probleme Hash, valeur manquant
    Par aikinhdo dans le forum Langage
    Réponses: 2
    Dernier message: 27/04/2007, 13h40
  3. Sélection de valeur dans liste déroulante
    Par tonito53 dans le forum Struts 1
    Réponses: 3
    Dernier message: 27/12/2006, 13h47
  4. Auto-increment : valeurs manquantes ?
    Par kileak dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 12/11/2006, 16h23
  5. Comment trouver les valeurs manquante d'une série ?
    Par NicoNGRI dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/10/2006, 09h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo