When I run macro; proc sql;
select NAME
into :NAMES separated by ' '
from (select name from dictionary.columns
where libname = 'WORK'
and memname='STNDSTANDARDIZED_0000'
and( lower(name) not like '%_ciev_all' and lower(name) not like '%_csev_all' and lower(name) not like 'default%' and lower(name) not in ('period', 'cid', 'app_char_marital_status', 'app_char_job_code',
'app_char_home_status', 'app_char_city', 'app_char_cars', 'act_cus_loan_number')));
quit;
/*Z DATA SETEP*/
/*?*/
/***************tabele z rekordami****************/
%macro rekordy2(input);
%let N_NAMES = %sysfunc(countw(&NAMES.));
%do i=1 %to &N_NAMES;
%let zmienna=%scan(&NAMES, &i,%STR( ));
data zbiory.outlier&zmienna.;
set &input.;
if &zmienna. >3 or &zmienna. <-3 then &zmienna. =1;
else &zmienna. =0;
keep period &zmienna.;
%end;
%mend;
%rekordy2(STNDSTANDARDIZED_0000); I have this error; 42 _ 180 ERROR 180-322: Statement is not valid or it is used out of proper order. NOTE: Line generated by the invoked macro "REKORDY2". 42 data zbiory.outlier&zmienna.; set &input.; if &zmienna. >3 or &zmienna. <-3 then &zmienna. =1; else &zmienna. =0; ___ 180 42 ! keep period &zmienna.; ERROR 180-322: Statement is not valid or it is used out of proper order. For some variables macro works but some no and I don't undestand where there's bug
... View more