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

  1. #1
    Futur Membre du Club
    Inscrit en
    octobre 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : octobre 2009
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Conditions SAS base dans conditions en macro langage
    Bonjour,

    Je récupère un prg SAS (qui est dans un macro prg) et je remarque cette situation où du SAS base est imbriqué dans du langage SAS macro. Ne faut-il pas transformer cette partie SAS base en langage macro (%if … %else %do …)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    %IF …. %DO;
     
       IFTHEN DO;
               …..
       END;
     
    %END;
    Merci beaucoup pour vos retours

  2. #2
    Membre expérimenté
    Inscrit en
    novembre 2009
    Messages
    698
    Détails du profil
    Informations forums :
    Inscription : novembre 2009
    Messages : 698
    Points : 1 300
    Points
    1 300
    Par défaut Conditions SAS base dans conditions en macro langage
    Bonjour,

    Le macro langage est principalement utilisé à l'extérieur des étapes data et proc.

    Ce n'est pas toujours possible de l'utiliser dans une étape data (essayez de remplacer if then else par %if %then %else dans le code suivant) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    %macro test(sexe);
      data test;
        set sashelp.class;
        if sex=&sexe then selec=1;
        else selec=0;
      run;
    %mend;
     
    %test("M");
    ni forcément souhaitable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    1    %macro test;
    2      data test1;
    3        do i=1 to 100000;
    4          output;
    5        end;
    6      run;
    7
    8      data test2;
    9        %do i=1 %to 100000;
    10         output;
    11       %end;
    12     run;
    13   %mend;
    14
    15   %test;
     
    NOTE: The data set WORK.TEST1 has 100000 observations and 1 variables.
    NOTE: DATA statement used (Total process time):
          real time           0.03 secondes
          cpu time            0.03 secondes
     
     
     
    NOTE: The data set WORK.TEST2 has 100000 observations and 0 variables.
    NOTE: DATA statement used (Total process time):
          real time           11.85 secondes
          cpu time            11.85 secondes
    Vous pouvez aussi regarder l'exemple Contrasting the %IF-%THEN/%ELSE Statement with the IF-THEN/ELSE Statement.

    Cordialement,

  3. #3
    Futur Membre du Club
    Inscrit en
    octobre 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : octobre 2009
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    merci mgdondon

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

Discussions similaires

  1. Macros sous condition dans une autre macro
    Par vvl_5 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/12/2013, 20h14
  2. Réponses: 5
    Dernier message: 16/11/2011, 00h59
  3. Resultat de requête dans condition de macro
    Par The_Royal_Dave dans le forum Access
    Réponses: 3
    Dernier message: 02/06/2008, 08h04
  4. Multiples conditions avec macro
    Par Toine45 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 27/12/2007, 15h24
  5. Macro-langage dans Delphi.
    Par ghost942 dans le forum Langage
    Réponses: 12
    Dernier message: 13/11/2007, 08h36

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