|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() SAS automation Inscription : juin 2011 Messages : 47 ![]() |
Bonjour,
j'ai une petite question pour vous, cela fait quelques heures que je galère à créer mes tranches via SAS. je m'explique j'ai une table qui fait environ 120 000 lignes avec dedans deux colonnes la première un flag et la deuxième une série de valeur numérique exemple NA 0 P 5.053 M 6.025 G 8.035 J'aurais aimer mettre les valeurs numérique en tranche de pas de 1, mais le soucis c'est que j'ai des valeurs comprises entre 0 et 386. J'ai donc besoin de votre aide pour écrire quelques choses d'efficace et rapide? Merci d'avance |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
On peut voir ce que tu as commencé?
|
|
|
00
|
|
|
#3 | ||
|
Invité régulier
![]() SAS automation Inscription : juin 2011 Messages : 47 ![]() |
Pour l'instant j'avais commencer la méthode barbare :
If 0<=PM<1 then tranche = 'entre 0 et 1'; else if 1<=PM<2 then tranche = 'entre 1 et 2'; et ainsi de suite. Je voulais passer par une boucle mais je bloque à ce niveau Code :
|
||
|
|
00
|
|
|
#4 | |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
Citation:
|
|
|
|
00
|
|
|
#5 | ||
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Bonjour.
La boucle est une bonne idée, mais plutôt pour créer un format. Ensuite, tu appliques ton format de manière légère (instruction FORMAT, la variable garde sa vraie valeur stockée) ou en créant une nouvelle variable texte (fonction PUT). Pour créer ton format, il faut une étape DATA qui génère les variables suivantes : FMTNAME, TYPE, START, END et LABEL. Plus EEXCL pour indiquer l'ouverture à droite de l'intervalle. La table ainsi créée est mise en entrée de la proc Format via l'option CNTLIN. Code :
Olivier |
||
|
|
10
|
|
|
#6 |
|
Invité régulier
![]() SAS automation Inscription : juin 2011 Messages : 47 ![]() |
Merci pour l'astuce cela marche nickel.
![]() Grâce à cela je viens de gagner beaucoup de temps et d'énergie. |
|
|
00
|
|
|
#7 | ||
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Sans utiliser une boucle
Code :
|
||
|
|
10
|
|
|
#8 |
|
Invité régulier
![]() SAS automation Inscription : juin 2011 Messages : 47 ![]() |
merci pour la deuxième solution, je viens de la tester elle marche nickel je me suis juste permis de rajouter l'option COMPBL au niveau de la définition de la tranche.
Encore Merci |
|
|
00
|
|
|
#9 | ||
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
C'est propre comme ça, t'as raison!
Une petite modif pour matcher avec le programme proposé par Olivier! Code :
|
||
|
|
00
|
|
|
#10 |
|
Invité régulier
![]() SAS automation Inscription : juin 2011 Messages : 47 ![]() |
merci pour l'aide, je viens de m'inscrire sur le forum et j'ai été aidé rapidement c'est donc à moi maintenant de renvoyer l'appareil et d'aider si je le peux
|
|
|
00
|
|
|
#11 | ||
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Allez, juste histoire de simplifier un brin...
Code :
|
||
|
|
00
|
|
|
#12 |
|
Invité régulier
![]() SAS automation Inscription : juin 2011 Messages : 47 ![]() |
Efficace et rapide car méthode, je ne connaissais pas la fonction Floor
|
|
|
00
|
|
|
#13 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com