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
    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 éprouvé
    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
    merci mgdondon

###raw>template_hook.ano_emploi###