Hi, I am trying to invoke a macro I have. I have already run it. It looks like this. %macro truncate(dsetin=, dsetout=, var=); proc sort data=&dsetin out=rank&var; by &var; run; proc rank data=rank&var out=test&var groups=100; var &var; ranks q&var; run; data &dsetout; set test&var; if q&var = 0 or q&var = 99 then delete; run; proc sort data=&dsetout; by fyear gvkey; run; %mend truncate; When I invoke it into my program it gives me this error or does not give an error but also does not produce the data set. I am trying to truncate 1% and 99% of certain variables. Thank you! 512 %truncate(comp_ret, comp_ret1, NI_price_tm1 NI_AT_tm1 cumret) ERROR: More positional parameters found than defined. 513 %truncate(comp_ret, comp_ret1, NI_price_tm1) ERROR: More positional parameters found than defined. 514 %truncate(comp_ret,comp_ret1,NI_price_tm1) ERROR: More positional parameters found than defined. 515 %truncate(comp_ret,comp_ret1,NI_price_tm1); ERROR: More positional parameters found than defined. 516 %macro truncate(dsetin=, dsetout=, var=); 517 518 proc sort data=&dsetin out=rank&var; 519 by &var; 520 run; 521 522 proc rank data=rank&var out=test&var groups=100; 523 var &var; 524 ranks q&var; 525 run; 526 527 data &dsetout; 528 set test&var; 529 if q&var = 0 or q&var = 99 then delete; 530 run; 531 proc sort data=&dsetout; 532 by fyear gvkey; 533 run; 534 535 %mend truncate; 536 %truncate(dsetin=comp_ret, dsetout=comp_ret1, var=NI_price_tm1; 537 %truncate(dsetin=comp_ret, dsetout=comp_ret1, var=NI_price_tm1); ERROR: More positional parameters found than defined. 538
... View more