sto cercando per un po 'l'equivalente del per in ciclo (come in Python o in R) nel SAS 9.3 macro lingua. Il DO loop sembra essere la soluzione ma non ha funzionato esattamente come voglio. Ho trovato un modo per farlo in una fase di dati con un ciclo DO ma non funziona con il linguaggio macro. Per esempio, in un passaggio di dati, questo codice sta lavorando:"Perché in" ciclo equivalente in SAS 9.3
DATA _NULL_;
DO i = 1,3,5,9;
PUT i;
END;
RUN;
E poi il prompt di registro come previsto:
1
3
5
9
Quando provo a fare lo stesso con un % DO ciclo in una macro, ho un errore.
%MACRO test();
%DO i = 1,2,4,9 ;
%PUT i = &i;
%END;
%MEND;
%test();
Il registro promp questi messaggi:
ERROR: Expected %TO not found in %DO statement.
ERROR: A dummy macro will be compiled
Sono abbastanza nuovo a SAS e StackOverflow quindi spero che la mia domanda non è troppo stupido. È così semplice farlo in Python e R quindi deve avere un modo semplice per farlo in SAS.
di Grazie per un aiuto - J. Muller
L'ho provato e funziona perfettamente. Non è semplice come la sintassi Python o R, ma funziona bene anche con la lista dei caratteri. Grazie! – jomuller