|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Chargé d'études statistiques Inscription : novembre 2011 Messages : 5 ![]() |
Bonjour,
J'aurai besoin d'un peit coup de main pour une étude que je suis en train de mener sous SAS. J'ai un fichier qui se compose en gros de la façon suivante : CLIENT FORMULE ANNEE Nb_DOS .... ATP ADC 2008 400 CIR DAC 2008 196 CIR DAC 2009 210 CIR DAC 2010 189 .... J'aimerai qu'au final ma table soit organisée de cette façon avec des nombre de dossiers par année, sur les 3 années concernées: CLIENT FORMULE Nb_DOS_2008 Nb_DOS_2009 Nb_DOS_2010 ATP ADC 400 0 0 CIR DAC 196 210 189 ... J'ai essayé avec une proc transpose mais pour chaque client, il n'y a pas forcément de nombre de dossiers chaque année (comme pour ATP ou il n'y a des dossiers qu''en 2008). Avec un data set classique j'ai résussi a obtenir un résultat ressemblant à ce que je veux mais je me retrouve avec une ligne par année et des résultats vides pour les autres années : CLIENT FORMULE Nb_DOS_2008 Nb_DOS_2009 Nb_DOS_2010 CIR DAC 196 . . CIR DAC . 210 . CIR DAC . . 189 Hors je voudrai n'avoir qu'une ligne par client!! Je n'ai pas utilisé SAS depuis quelque temps maintenant et je me retrouve coincé alors que cette manipulation ne me semble pas difficile pourtant. Merci d'avance poour votre aide (j'espère avoir été assez clair dans mes explications) |
|
|
00
|
|
|
#2 |
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 012 ![]() |
Hello;
une proc TRANSPOSE. !!! et une concatination de variable. |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Chargé d'études statistiques Inscription : novembre 2011 Messages : 5 ![]() |
Avec la proc transpose je vais avoir une table en sortant qui ressemblera a ca
CLIENT FORMULE Nb_doss COL1 COL2 COL3 ATP ADC 400 2008 CIR DAC 196 2008 CIR DAC 210 2009 CIR DAC 189 2010 Et si j'ai un client qui n'a par exemple des dossiers que pour l'année 2011, l'année 2011 apparaitra dans COL1 et non COL3 |
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Effectivement, soit tu prépares ta proc TRANSPOSE en construisant à l'avance les noms des variables avec une concaténation, puis tu repasses sur le résultat pour remplacer (si tu le souhaites) les valeurs manquantes par des zéros.
Code :
Bon courage. Olivier |
||
|
|
00
|
|
|
#5 | ||
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Sinon on peut aussi tout faire en une seule étape avec un ARRAY. Il est alors important de bien maîtriser l'année la plus ancienne.
Code :
|
||
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Chargé d'études statistiques Inscription : novembre 2011 Messages : 5 ![]() |
Merci beaucoup olivier pour ta réponse et ta réactivité.
Je viens de tester la 1ère méthode qui fonctionne a merveille!! Je n'avais pas pensé a faire une concaténation de variable avant ma transposée!! Je m'y remets doucement, ça va venir. Ce forum est génial en tout cas. Merci encore. Je vais tester avec un arry aussi, car c'est une façon de programmer que je n'utilisais pas souvent. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com