I am trying to run a Macro Program ; but am receiving these Errors : ERROR:22-322 and ERROR:76-322. According to my SAS LOG I have narrowed down the location of the error/errors in the Attached part of the Program. Any/all help would be greatly appreciated. I am attaching two separate screenshots : 1.) What my SAS LOG is showing me 2.) The piece of code associated with the error. NOTE: Writing TAGSETS.SASREPORT13(EGSR) Body file: EGSR
36
37 %compare_all ;
37 new_observations=case(memname)
________________
22
76
ERROR 22-322: Syntax error, expecting one of the following: !, !!, &, *, **, +, -, /, <, <=, <>, =, >, >=, AND, EQ, EQT, GE, GET,
GT, GTT, LE, LET, LT, LTT, NE, NET, OR, WHEN, ^=, |, ||, ~=.
ERROR 76-322: Syntax error, statement will be ignored. Here is the part of the code/logic where the SAS LOG is telling me the error is occurring : update _var_obs_compare
set lost_observations=case(memname)
%do i = 1 %to &ndata;
when "%scan(&dlist,&i,|)" then &&removed&i;
else .
%end ;
new_observations=case(memname)
%do i = 1 %to &ndata;
when "%scan(&dlist,&i,|)" then &&added&i;
else .
%end ;
data_changes=case(memname)
%do i = 1 %to &ndata;
when "%scan(&dlist,&i,|)" then &&any_diff&i;
else .
%end ;
id_variables=case(memname)
%do i = 1 %to &ndata;
when "%scan(&dlist,&i,|)" then tranwrd("&&idlist&i",' ',', ');
else ''
%end ;
update _var_attr_compare
set data_changes=case(memname)
%do i = 1 %to &ndata;
when "%scan(&dlist,&i,|)" then case (upcase(name))
%if &&nvar&i>0 %then %do j = 1 %to &&nvar&i;
%if %sysevalf(%superq(any_diff&i._&j)^=,boolean) %then %do;
when upcase("%scan(&&vlist&i,&j,|)") then %superq(any_diff&i._&j)
%end;
%end;
%else %do;
when "" then .
%end;
else . end
%end;
else . end ,
id_variables=case
when upcase(name) in("" %do j = 1 %to %sysfunc(countw(&id,%str( ))); "%qupcase(%scan(&id,&j,%str( )))" %end;) then 'Yes'
else 'No' end;
quit;
... View more