IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SAS Base Discussion :

Utilisation d'une macro variable dans une boucle


Sujet :

SAS Base

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Points : 13
    Points
    13
    Par défaut Utilisation d'une macro variable dans une boucle
    Bonjour,

    Je dois utiliser une macro variable dans une boucle.
    Ci-dessous mon code ; la syntaxe &&tx_RA_&i. n'est pas correcte, j'ai cherché en vain la bonne syntaxe sur Internet. La connaissez vous ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    %let tx_RA_0=0.000; %let tx_RA_1=0.024; %let tx_RA_2=0.040; %let tx_RA_3=0.062; %let tx_RA_4=0.075; %let tx_RA_5=0.083; 
    %let tx_RA_6=0.095; %let tx_RA_7=0.095; %let tx_RA_8=0.097; %let tx_RA_9=0.097; %let tx_RA_10=0.097; 
     
    data base;
    anc=floor(1+4*rand("uniform")); /* génère aléatoirement un entier entre 1 et 5 */
     
    survie_3=1;
    DO i = anc TO anc+5 ;
       survie_3=survie_3*(1-&&tx_RA_&i.);
    END;
    run;

    Merci pour votre aide.
    Thibault

  2. #2
    Membre éprouvé
    Avatar de m.brahim
    Homme Profil pro
    SAS / BIG DATA
    Inscrit en
    Juillet 2011
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : SAS / BIG DATA
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 461
    Points : 1 119
    Points
    1 119
    Billets dans le blog
    14
    Par défaut
    Bonjour,

    Je te propose cette solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    %let tx_RA_0=0.000; %let tx_RA_1=0.024; %let tx_RA_2=0.040; %let tx_RA_3=0.062; %let tx_RA_4=0.075; %let tx_RA_5=0.083; 
    %let tx_RA_6=0.095; %let tx_RA_7=0.095; %let tx_RA_8=0.097; %let tx_RA_9=0.097; %let tx_RA_10=0.097; 
     
     
    data base;
    anc=floor(1+4*rand("uniform")); 
     
    survie_3=1;
    DO i = anc TO anc+5 ;
       survie_3=survie_3*(1-symget(cats('tx_RA_',i)));
       output;
    END;
    run;
    Cordialement
    Certification des Talents de la programmation In Memory Statistics sur HADOOP:
    http://talents-imstat.groupe-avisia....avance?uid=162

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    Parfait, ça marche, merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer une macro variable dans une boucle %do %to
    Par AlexandraN78 dans le forum Macro
    Réponses: 2
    Dernier message: 18/05/2016, 09h55
  2. Réponses: 3
    Dernier message: 30/05/2012, 09h24
  3. Valeurs d'une macro-variable dans une table SAS
    Par patril dans le forum Macro
    Réponses: 2
    Dernier message: 03/08/2011, 13h23
  4. utilisation d'une macro Excel dans une macro Word
    Par Tommy24 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/05/2011, 14h36
  5. Réponses: 2
    Dernier message: 22/03/2010, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo