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 à l'essai
    Homme Profil pro
    Inscrit en
    juin 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : juin 2012
    Messages : 39
    Points : 21
    Points
    21
    Par défaut Faire une somme d'une variable sur des observations "presque-identiques"
    Bonjour,
    Svp j'ai besoin de votre aide. En fait, dans ma table j'ai souvent des observations identiques pour 4 variables mais qui ont des valeurs différentes sur la 5è variable.
    Si je fais un tri dans une proc sort avec nodupkey, je perds une ligne ayant une information importante (dans la 5è variable). J'ai donc besoin de regrouper les identifiants concernés (ayant les valeurs identiques sur les 4 variables var1 var2 var3 et var4) en faisant une somme sur la variable 5. De ce procédé, je récupère toutes les informations sur la 5è variable et je pourrais trier après en utilisant les 4 variables (var1 var2 var3 et var4).
    Pour voir clair, je mets en bas ma table de départ (aide) et les deux tables que je souhaite obtenir (aide_resultat1 ou bien aide_resultat2). Suivant les possibilités, l'une des deux tables est suffisante pour moi. Je vous remercie beaucoup pour l'aide!

    Table de départ:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Data aide;
    input identifiant var1$ var2$ var3$ var4$ var5;
    cards;
    150054319 H N B1 B1 8.59
    150054319 H N B1 B1 0
    201905302 B N B1 B1 51.76
    201905302 B N B1 B1 10
    201928116 B N B1 B1 8.59
    201964554 B N B1 B1 9.88
    201985365 H N B1 B1 5
    ;run;
    L'une des 2 tables que je souhaite obtenir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Data aide_resultat1;
    input identifiant var1$ var2$ var3$ var4$ var5 var6;
    cards;
    150054319 H N B1 B1 8.59 8.59
    150054319 H N B1 B1 0 8.59
    201905302 B N B1 B1 51.76 61.76
    201905302 B N B1 B1 10 61.76
    201928116 B N B1 B1 8.59 8.59
    201964554 B N B1 B1 9.88 9.88
    201985365 H N B1 B1 5 5
    ;run;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Data aide_resultat2;
    input identifiant var1$ var2$ var3$ var4$ var5;
    cards;
    150054319 H N B1 B1 8.59
    201905302 B N B1 B1 61.76
    201928116 B N B1 B1 8.59
    201964554 B N B1 B1 9.88
    201985365 H N B1 B1 5
    ;run;

  2. #2
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    juin 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : juin 2012
    Messages : 39
    Points : 21
    Points
    21
    Par défaut
    Je viens de trouver un code qui donne l'une des deux tables que je voulais.
    Je vous remercie!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    proc sql;
    create table aide1 as
    select *,
    	CASE 
    		WHEN count(distinct var5)>1 then sum(var5)
    		ELSE var5
    		END as SOMME_var5
    from aide
    group by identifiant
    ;
    quit;

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

Discussions similaires

  1. Faire une boucle sur des labels ou textBox
    Par Actarusdu60 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/12/2008, 19h17
  2. Réponses: 3
    Dernier message: 11/10/2008, 14h32
  3. Réponses: 1
    Dernier message: 09/11/2006, 13h08
  4. faire une jointure sur des clés différentes
    Par phpaide dans le forum Requêtes
    Réponses: 3
    Dernier message: 13/09/2006, 11h16
  5. faire une recherche sur des "
    Par richard038 dans le forum Requêtes
    Réponses: 6
    Dernier message: 24/07/2006, 23h30

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