|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 30 ![]() |
Bonjour à tous,
J'ai un petit problème avec la fonction scan de sas. Je m'explique : je voudrai mettre 2ème argument de la fonction une variable de ma table. Ça ne marche pas et je ne vois pas trop comment faire autrement. Code :
Code :
|
||||
|
|
00
|
|
|
#2 |
![]() ![]() Stéphane Consultant et formateur SAS et Cognos Inscription : avril 2009 Messages : 1 791 ![]() |
![]() mais tu as la fonction SCAN pour une étape DATA et non la macro %SCAN. Tu as essayé ?
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !Moteur de recherche dans les papiers SAS |
|
00
|
|
|
#3 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Je n'ai rien compris
|
|
|
00
|
|
|
#4 | ||
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 30 ![]() |
Je viens d'essayer et voila la reponse dans le log :
Code :
|
||
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 30 ![]() |
Megamind2,
En fait je voudrais utiliser l'age de la personne comme index dans la fonction scan pour la macro-variable fqaa, ie que si la personne a 50 ans, je voudrais comparer la colonne alea&i avec la 50eme valeur de la macro-variable fqaa. C'est plus clair |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Ju ne serais pas entrain de de comparer du alpha numérique?
Code :
IF alea&i > %sysevalf(%scan(&hqaa,&j,' ')) Code :
IF input(alea&i,best.) > %sysevalf(input(%scan(&hqaa,&j,' '),best.)) |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 30 ![]() |
Merci pour la réponse mais en fait cette manière là marche (avec la boucle), mais comme je disais le temps d'execution avec la boucle est beaucoup trop long...
Du coup c'est pour ça que je cherche à savoir si on peut mettre le nom d'une colonne comme 2ème argument dans la fonction scan. |
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
ça sert à quoi si tu ne parcours pas ta macro liste hqaa. Cela veut dire que tu veux juste tester avec une seule variable?
|
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 30 ![]() |
Désolé mais je ne comprends pas ta question
|
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Visiblement tu scanes ta macro qui est une liste séparée par des blancs, et pour chaque valeur scanner tu testes. Alors je ne vois pas pourquoi tu veux rajouter une colonne en dur dans ta fonction sacn.
Comme j'ai pas tout le code, c'est chaud de tout capter |
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 30 ![]() |
En fait, pour essayer d'etre plus clair
Dans une autre table j'ai une colonne qaa : la 1ere valeur correspond à 45 ans la 2è à 46 et ainsi de suite. Comme je ne peux pas travailler sur deux tables en meme temps (enfin je crois) j'ai crée une macro variable &hqaa où j'ai stocké les valeurs de la colonne qaa séparé par un espace). Donc suivant la valeur de l'age en cours, je voudrais recuperer la valeur de la macro-variable hqaa. C'est plus clair ou pas du tout ? |
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
T'as été clair
Pourquoi faire simple quant on peut faire plus compliqué? Je suppose qu'il n'y a pas une clé de jointure commune aux deux tables pour faire plus compliquer. |
|
|
00
|
|
|
#13 |
|
Invité(e)
Messages : n/a ![]() |
|
00
|
|
|
#14 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 30 ![]() |
Effectivement il n'y en a pas...
ps: merci beaucoup pour la rapidité des réponses
|
|
|
00
|
|
|
#15 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
De rien
Navré de ne pas pouvoir t'aider |
|
|
00
|
|
|
#16 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 30 ![]() |
Pour mettre le contexte, je dois faire une projection dans le temps de l'état des personnes, leur âge évolue donc chaque année. Trois états sont possibles : Autonome, dépendant ou Décès. J'ai donc des tables de probabilité me permettant de savoir avec quelle proba la personne va changer ou non d'état. Chaque personne est dotée d'un nombre aléatoire, si ce nombre est inférieur à la probabilité changement d'état.
|
|
|
00
|
|
|
#17 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Comment ce nombre aléatoire est généré et comment est-il associé à chaque personne (son âge)?
|
|
|
00
|
|
|
#18 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 30 ![]() |
En fait pour ne pas m'embeter dans la table où sont les personnes, j'ai generer 70 colonnes avec par exemple pour la 1ere :
et du coup la 1ere année je prends alea1, la deuxieme année alea2 etc |
|
|
00
|
|
|
#19 | |||
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 30 ![]() |
Citation:
Ce que je veux éviter justement c'est de faire une boucle. |
|||
|
|
00
|
|
|
#20 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
T'as raison, je pense que t'as pas le choix de faire une boucle
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com