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 :

Selection de lignes


Sujet :

R

  1. #1
    Membre averti
    Homme Profil pro
    Data scientist
    Inscrit en
    Février 2017
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Data scientist
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2017
    Messages : 211
    Points : 343
    Points
    343
    Par défaut Selection de lignes
    Bonjour, J'ai un petit soucis de data.frame sous R je n'arrive pas à décrypter.

    Je fais ma sélection de lignes sur conditions et il y a des NA qui apparaissent.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    data_glob_annulation[as.Date(data_glob_annulation$`Date_Id#Order`) <=
                            '2019-01-29'
                          & as.Date(data_glob_annulation$`Date_Id#Order`) >= '2019-01-01'
                         & data_glob_annulation$Brand_Id == 5
                         & data_glob_annulation$type_ca == 'Retourne',]
    le résultats attendus normalement est :

     Brand_Id ca_glob equipement   Customer_Id Date_Id#Order WeekOfYear Year EquipmentGroup_Id  type_ca Quantity
    4537         5      76   42947931 -5.267825e+18    2019-01-04          1 2019          42947931 Retourne        1
    16408        5      25   42927093  5.375123e+18    2019-01-03          1 2019          42927093 Retourne        1

    mais le résultat obtenu est :

          Brand_Id ca_glob equipement   Customer_Id Date_Id#Order WeekOfYear Year EquipmentGroup_Id  type_ca Quantity
    NA          NA      NA         NA            NA          <NA>         NA   NA                NA     <NA>       NA
    NA.1        NA      NA         NA            NA          <NA>         NA   NA                NA     <NA>       NA
    NA.2        NA      NA         NA            NA          <NA>         NA   NA                NA     <NA>       NA
    4537         5      76   42947931 -5.267825e+18    2019-01-04          1 2019          42947931 Retourne        1
    NA.3        NA      NA         NA            NA          <NA>         NA   NA                NA     <NA>       NA
    NA.4        NA      NA         NA            NA          <NA>         NA   NA                NA     <NA>       NA
    NA.5        NA      NA         NA            NA          <NA>         NA   NA                NA     <NA>       NA
    NA.6        NA      NA         NA            NA          <NA>         NA   NA                NA     <NA>       NA
    NA.7        NA      NA         NA            NA          <NA>         NA   NA                NA     <NA>       NA
    NA.8        NA      NA         NA            NA          <NA>         NA   NA                NA     <NA>       NA
    16408        5      25   42927093  5.375123e+18    2019-01-03          1 2019          42927093 Retourne        1
    NA.9        NA      NA         NA            NA          <NA>         NA   NA                NA     <NA>       NA
    NA.10       NA      NA         NA            NA          <NA>         NA   NA                NA     <NA>       NA
    Auriez-vous une idée sur ce sujet svp ?

    Merci.

  2. #2
    Membre actif Avatar de Alpacky
    Homme Profil pro
    .
    Inscrit en
    Mars 2014
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Mars 2014
    Messages : 99
    Points : 200
    Points
    200
    Par défaut
    hello,

    https://stackoverflow.com/questions/...-rows/27491118

    ca devrait répondre à ta question!
    si c'est pas le cas, peux tu ajouter un dput(head(df)) pour qu'on puisse tester?

    a+

  3. #3
    Membre confirmé
    Inscrit en
    Février 2011
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 276
    Points : 561
    Points
    561
    Par défaut
    Bonjour,

    pour compléter la précédente réponse, ça provient probablement de NA dans ton data.frame. Quand tu as un NA, la condition ne peut-être évaluée et renvoie NA. Par exemple NA < 3 ça donne NA. Quand tu utilises des NA dans une indexation, pour sélectionner des lignes ou des colonnes alors il renvoie des NA, d'où ton problème à priori. Pour éviter ça tu peux encapsuler tes conditions dans la fonction which qui traitent les NA comme des valeurs fausses, FALSE. Du coup à la place de NA quand la condition ne peut-être évaluée tu auras des FALSE et donc ces lignes qui contiennent des NA ne seront plus sélectionnées.
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    df <- structure(list(x = c(-0.68990192262767, NA, -0.919887326747173, 
    -0.0991340265034509, 0.904773077058579), y = c(-0.91906821266362, 
    -0.734494036938301, 0.827677714448853, -1.0050525751745, -0.741854667400333
    )), row.names = c(NA, -5L), class = "data.frame")
     
    df
                x          y
    1 -0.68990192 -0.9190682
    2          NA -0.7344940
    3 -0.91988733  0.8276777
    4 -0.09913403 -1.0050526
    5  0.90477308 -0.7418547
     
    df$x < df$y
    [1] FALSE    NA  TRUE FALSE FALSE
     
    df[df$x < df$y,]
                x         y
    NA         NA        NA
    3  -0.9198873 0.8276777
     
    which(df$x < df$y)
    [1] 3
     
    df[which(df$x < df$y), ]
               x         y
    3 -0.9198873 0.8276777
    cdlt

  4. #4
    Membre averti
    Homme Profil pro
    Data scientist
    Inscrit en
    Février 2017
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Data scientist
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2017
    Messages : 211
    Points : 343
    Points
    343
    Par défaut
    Merci de vos réponses.

    C'est clair.

    Cordialement,

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

Discussions similaires

  1. select dernière ligne...
    Par ludophil dans le forum Requêtes
    Réponses: 4
    Dernier message: 22/05/2009, 21h09
  2. [c#][VS 2005] Selection une ligne de datagridview
    Par Sodangbe dans le forum Windows Forms
    Réponses: 2
    Dernier message: 12/07/2006, 19h48
  3. balise select à une ligne (comboBox)
    Par guigui_rondat dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 04/02/2006, 23h54
  4. Pb de select : retrouver lignes identiques
    Par lamf dans le forum Requêtes
    Réponses: 11
    Dernier message: 07/01/2006, 20h53
  5. [C#] Sélection de lignes dans un DataGrid
    Par wayak3 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 12/07/2005, 10h17

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