Dear,
I have a question in this macro which I am using. The macro gives me output I need. But my question is about "%put &b1 &c1 &d1 &f1;" statement in the macro.
when I put "%put &b1 &c1 &d1 &f1;" statement in the macro it shows numerical numbers in the log which exactly the I am expecting
But when I use this "%put &var6 &var7 &var8 &var9; " statement it shows 'b1' 'c1' 'd1' 'f1' in the log.
Please suggest how should I get the output in the logI got when i used "%put &b1 &c1 &d1 &f1;" statement IN THE MACRO.
I am planning to use "%put &var6 &var7 &var8 &var9; statement instead of "%put &b1 &c1 &d1 &f1;" statement as the values change for my next table
Thank you very much.
%macro three(var1=,var2=,var3=,var4=,var5=,var6=,var7=,var8=,var9=);
data &var1(keep=usubjid trt01a);
length TRT01A $50.;
set adsl;
if &var2;
if trt01a in ('JZP-110 75mg' 'JZP-110 150mg' 'JZP-110 300mg');
format trt01a $trta.;
run;
proc sql;
create table &var3 as
select count(distinct usubjid) as NS,TRT01A
from &var1
group by TRT01A;
quit;
data &var4;
set &var3;
trt01a=strip(trt01a);
if trt01a='JZP-110 75mg' then trt=&var6;
if trt01a='JZP-110 150mg' then trt=&var7;
if trt01a='JZP-110 300mg' then trt=&var8;
run;
data &var5;
set &var4 end=done;
if trt01a in ('JZP-110 150mg', 'JZP-110 300mg', 'JZP-110 75mg' ) then Total + ns;
output;
if done;
ns = TOTAL;
trt=&var9;
trt01a='Total';
output;
drop Total;
run;
data _null_;
set &var5;
call symputx(trt,ns);
run;
%put &b1 &c1 &d1 &f1; %put &var6 &var7 &var8 &var9; %mend; %three(var1=adsl1,var2=saffl="Y",var3=TNSTFD,var4=tnstfd1,var5=tnstfd11,var6='b1',var7='c1',var8='d1',var9='f1');
... View more