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

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2011
    Messages : 51
    Points : 44
    Points
    44

    Par défaut Flaguer le total en fonction des modalites des variables

    Bonjour,

    Je souhaiterais flaguer le total en fonction des valeurs des modalités.


    Nom : Donnees.PNG
Affichages : 38
Taille : 27,8 Ko

    Dans l’exemple jeu de données ci-dessus, le total est calculé en fonction des variables INFOS avec 2 modalités (A en vert et B en bleu) et GÉO également 2 modalités (XX52 en vert et XX42 en bleu).
    Dans la colonne "RESULT", si une des modalités qui compose le total a la valeur ":u" alors la valeur du total sera ":u" sinon on conserve la valeur de total.

    Le but est d'obtenir les valeurs de la colonne "Expect_result".

    Merci pour votre aide.

    Koulifanya.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur en SAS/ Statisticien
    Inscrit en
    janvier 2013
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur en SAS/ Statisticien
    Secteur : Enseignement

    Informations forums :
    Inscription : janvier 2013
    Messages : 447
    Points : 1 479
    Points
    1 479

    Par défaut

    Bonjour,
    Je te propose la solution suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    data FlagTotal ;
    set Tabase ;
    by info Geo notsorted ;
    retain Flag ;
    Expect_Result=Result ;
    if Result=":U" then Flag=1 ;
    if Vars="TOTAL" and Flag then Expect_Result=":U" ;
    run ;
    Bon courage
    Ward

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2011
    Messages : 51
    Points : 44
    Points
    44

    Par défaut

    Salut Ward,

    J'ai testé ton code mais ça ne marche pas, le résultat donne: lorsque vars=TOTAL ---> EXPECT_RESULT=:U dans les 2 cas: (infos=A et B).

    Merci pour la suggestion.

    Koulifanya

  4. #4
    Membre éprouvé
    Inscrit en
    novembre 2009
    Messages
    522
    Détails du profil
    Informations forums :
    Inscription : novembre 2009
    Messages : 522
    Points : 1 030
    Points
    1 030

    Par défaut Flaguer le total en fonction des modalités des variables

    Bonjour,

    Le programme de Ward fonctionne très bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    proc import out=Tabase 
                datafile="d:\temp\test.xlsx"  
                dbms=excel replace;
         getnames=yes;
    run;
     
    data FlagTotal ;
      set Tabase ;
      by Infos Geo notsorted ;
      retain Flag ;
      Expect_Result=Result ;
      if Result=":u" then Flag=1 ;
      if Vars="TOTAL" and Flag then Expect_Result=":u" ;
    run ;
    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
                                                                   Expect_
      ID   YEAR  GEO_POS  INFOS  GEO   DIM   VARS    RESULT  Flag  Result
    22509  2016    XX       A    XX52  B_XX  0        0        .    0
    22510  2016    XX       A    XX52  B_XX  100_     20       .    20
    22511  2016    XX       A    XX52  B_XX  10_20    80       .    80
    22512  2016    XX       A    XX52  B_XX  20_30    30       .    30
    22513  2016    XX       A    XX52  B_XX  2_5      240      .    240
    22514  2016    XX       A    XX52  B_XX  30_50    20       .    20
    22515  2016    XX       A    XX52  B_XX  50_100   30       .    30
    22516  2016    XX       A    XX52  B_XX  5_10     220      .    220
    22518  2016    XX       A    XX52  B_XX  _0_2     570      .    570
    22517  2016    XX       A    XX52  B_XX  TOTAL    1210     .    1210
     6741  2016    XX       B    XX42  B_XX  0        0        .    0
     6742  2016    XX       B    XX42  B_XX  100_     960      .    960
     6743  2016    XX       B    XX42  B_XX  10_20    :u       1    :u
     6744  2016    XX       B    XX42  B_XX  20_30    :u       1    :u
     6745  2016    XX       B    XX42  B_XX  2_5      :u       1    :u
     6746  2016    XX       B    XX42  B_XX  30_50    25       1    25
     6747  2016    XX       B    XX42  B_XX  50_100   42       1    42
     6748  2016    XX       B    XX42  B_XX  5_10     18       1    18
     6750  2016    XX       B    XX42  B_XX  _0_2     :u       1    :u
     6749  2016    XX       B    XX42  B_XX  TOTAL    2250     1    :u
    Cordialement,
    Fichiers attachés Fichiers attachés

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2011
    Messages : 51
    Points : 44
    Points
    44

    Par défaut

    Le code ne fonction que dans ce cas précis (que sur le jeu de test). Il suffit juste de rajouter un autre groupe de la variable "INFOS" (C) et "GEO" (XX28) et ça ne fonctionne pas (meme avec ou sans tri sur INFO et GEO)

    Nom : TableTest.PNG
Affichages : 21
Taille : 40,5 Ko



    Result test
    result_test1.xlsx



    Merci.
    Fichiers attachés Fichiers attachés

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur en SAS/ Statisticien
    Inscrit en
    janvier 2013
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur en SAS/ Statisticien
    Secteur : Enseignement

    Informations forums :
    Inscription : janvier 2013
    Messages : 447
    Points : 1 479
    Points
    1 479

    Par défaut

    Bonjour,
    Oui, l'ajout d'une troisième modalité à la variable "INFO" ça change un peu. Il suffit, dans ce cas la, d'ajouter la ligne suivante au code et ça fonctionne correctement :
    if first.Geo then call missing(Flag) ;
    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
    proc import out=Tabase 
                datafile="d:\temp\test.xlsx"  
                dbms=excel replace;
         getnames=yes;
    run;
     
    data FlagTotal ;
      set Tabase ;
      by Infos Geo notsorted ;
      retain Flag ;
      Expect_Result=Result ;
      if first.Geo then call missing(Flag) ;
      if Result=":u" then Flag=1 ;
      if Vars="TOTAL" and Flag then Expect_Result=":u" ;
    run ;
    Cordialement Ward

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2011
    Messages : 51
    Points : 44
    Points
    44

    Par défaut

    Merci bien. Ca fonctionne

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

Discussions similaires

  1. etat : sous total en fonction des regroupements
    Par frommage dans le forum IHM
    Réponses: 1
    Dernier message: 22/04/2014, 14h17
  2. construction de requête en fonction des variables
    Par razily dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 01/06/2010, 16h07
  3. Réponses: 1
    Dernier message: 09/04/2010, 17h40
  4. Rechercher des données en fonction des variables d'un tableau
    Par BOU59000 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 01/07/2009, 13h43
  5. Réponses: 2
    Dernier message: 24/05/2008, 10h14

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