From: A. S. on 8 Jul 2010 04:33 Hi, I wrote a macro to iterate over words in a string: %MACRO forallStr(str,command,sep=' '); %LET _i=1; %DO %WHILE (%QSCAN(&str,&_i,&sep) NE); %LET _x=%QSCAN(&str,&_i,&sep); DATA _NULL_; CALL EXECUTE("&command"); RUN; %LET _i=%EVAL(&_i+1); %END; %MEND; The only problem now is that I cannot nest this in another datastep (due to the DATA step in the macro). Just writing &command; instead of the DATA step here didn't work. I assume the macro processor doesn't look twice. Is there a way to make it work so that I can write for example DATA d; %forallStr('a b c',%NRSTR(var="&_x"; OUTPUT)); RUN; ??
|
Pages: 1 Prev: by Group trick,merge data Next: Newbie Interview question |