|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Blaire BailliÉtudiant Inscription : août 2011 Messages : 7 ![]() |
Salut à tous , je suis un peu nouveau avec la programmation sas , es ce que quelqu'un pourrait m'aider avec un programme sas me permettant de passer de la table A à la table B, la variable T est numérique et les autres sont alpha-numériques
merci d'avance Table A X Y Z T 1 I a 4 1 I b 5 2 III C 1 2 III H 3 2 III E 4 3 II s 8 3 II u 7 Table B X Y Z T 1 I a, b 9 2 III c,h,e 8 3 II s, u 15 |
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Bonjour Blaire.
Je te propose de travailler en 3 temps : d'abord deux transpositions de tes variables Z et T, séparément l'une de l'autre, puis une jointure des 2 tables transposées, au cours de laquelle tu pourras fusionner les valeurs (texte avec CATX et numériques avec SUM). Code :
Olivier |
||
|
|
00
|
|
|
#3 | ||
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Il y a aussi plus rapide, mais je trouve cette solution moins évidente : en une seule étape DATA, on cumule au fur et à mesure les valeurs de T et Z dans de nouvelles variables. Les fonctions utilisées sont les mêmes que précédemment, CATX et SUM. Mais ce qui change, ce sont :
* les FIRST et LAST (disponibles grâce au BY) qui indiquent si on commence ou termine un bloc de valeurs de X*Y * l'instruction OUTPUT qui écrit le contenu de la mémoire dans la table en sortie (quand OUTPUT est explicite, l'écriture n'intervient que quand la condition est vraie. Quand OUTPUT est implicite, chaque observation est écrite dans la table en sortie) * le RETAIN qui protège les variables de cumul et évite qu'on perde leurs valeurs d'une ligne à une autre * le CALL MISSING pour initialiser les variables à chaque nouveau bloc * le LENGTH qui permet d'indiquer à SAS le type (présence d'un $ = texte) et le nombre d'octets à réserver pour stocker une valeur des nouvelles variables. Code :
|
||
|
|
10
|
|
|
#4 |
|
Invité de passage
![]() Blaire BailliÉtudiant Inscription : août 2011 Messages : 7 ![]() |
Salut Olivier, tu es un as!
Un gros merci, tu viens de me sauver du temps , tes deux solutions roulent, les deux programmes sont parfaits pour moi à plus |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com