|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 7 ![]() |
Bonjour,
Je n'arrive pas à trouver une solution à mon problème, du coup, je me tourne vers vous en espérant que quelqu'un pourra me venir en aide... Voici mon problème : j'ai une table SAS qui comporte un grand nombre de variables. J'aimerais pouvoir scinder ma base selon les valeurs d'une de mes variables. Je vais prendre un exemple, ce sera peut-être plus clair. Partons de la table suivante : fruits couleur pêche orange abricot orange cerise rouge fraise rouge ... J'aimerais alors scinder cette table selon les différentes valeurs de la variable couleur : fruits couleur pêche orange abricot orange et fruits couleur cerise rouge fraise rouge Ce qui me pose problème, c'est que je ne connais pas à l'avance les modalités de ma variable à scinder (variable couleur dans mon exemple). Alors si vous avez des idées, je suis preneuse.. Merci d'avance ! |
|
|
00
|
|
|
#2 | ||
![]() ![]() Stéphane Consultant et formateur SAS et Cognos Inscription : avril 2009 Messages : 1 791 ![]() |
en fait c'est un problème classique qui se résoud de la façon suivante :
tu fais la liste des modalités de COULEUR via une proc FREQ ou un SELECT DISTINCT. Tu récupères chaque valeur dans autant de macro-variables que nécessaire via un CALL SYMPUTX. tu crées une boucle avec, permettant de générer autant de ELSE IF que nécessaire : Code :
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !Moteur de recherche dans les papiers SAS |
||
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Bonjour.
Deux solutions sont possibles, aucune n'étant simple à coder. Soit en langage macro (attention Brice, c'est pour toi Soi en une seule étape DATA avec une table de hachage. J'ai mis un exemple à la fin de la doc "le hash expliqué à ma fille" que tu devrais trouver sur ce site ; le code complet et les explications sont en page 4. Bon courage. Olivier |
|
|
00
|
|
|
#4 | ||||
|
Membre habitué
![]() Consultant informatique Inscription : mars 2002 Messages : 211 ![]() |
Hello,
@Olivier: super la solution des tables de hash! Je m'étais penché sur le problème de njacquet et j'essayais de le résoudre d'une autre manière. Code :
Ce qui me permettra de faire le statement data jaune rouge; et de donc déclarer mes tables en output. Par contre je coince avec la macro. Code :
J'ai essayé avec un mais ça ne marche pas. Je suis curieux de voir si on peut modifier ma macro afin d'obtenir le résultat attendu... Ou s'il n'est tout simplement pas possible d'y arriver avec mon idée... Merci pour vos précisions. |
||||
|
|
00
|
|
|
#5 | ||
![]() ![]() Stéphane Consultant et formateur SAS et Cognos Inscription : avril 2009 Messages : 1 791 ![]() |
non mais tu dois décorreller l'output de la création des macro variables.
(à tester je l'ai tapé rapidement) Code :
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !Moteur de recherche dans les papiers SAS |
||
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 7 ![]() |
Avec les tables de hachage ça a très bien marché !
Merci beaucoup !! |
|
|
00
|
|
|
#7 | ||
|
Membre habitué
![]() Consultant informatique Inscription : mars 2002 Messages : 211 ![]() |
Hello,
Je viens de lire une petite doc SAS qui m'a fait repenser à ce problème. Je sais qu'il est déjà résolu mais voici encore une autre manière de faire. (Mais je pense que la solution d'Olivier est la meilleure) Ca peut peut-être servir à ceux qui liront ce topic après une recherche: Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com