Hi, some thing is wrong about formatting,in my table programming, please see below and suggest any solution for this impasse. the problem is in the but one step (I think !).
%macro init;
%if &sysscp=WIN %then %do;
libname fmt102 "C:\Users\shaker\Dropbox\batch5\AG102\formats";
options fmtsearch = (work fmt102);
options mautosource sasautos = (sasautos "C:\Users\shaker\Dropbox\chandu\AG102\macro");
options validvarname = upcase msglevel = i ls=256 nocenter;
libname raw102 "C:\Users\shaker\Dropbox\chandu\AG102\data\raw";
libname sdtm102 "C:\Users\shaker\Dropbox\chandu\AG102\data\sdtm";
libname adam102 "C:\Users\shaker\Dropbox\chandu\AG102\data\adam";
libname adamx102 "C:\Users\shaker\Dropbox\chandu\AG102\data\adamxpt";
libname sdtmx102 "C:\Users\shaker\Dropbox\chandu\AG102\data\sdtmxpt";
options nofmterr fmtsearch = (work library);
%end;
%mend;
%init;
proc format;
value trt (multilabel)
0= "Placebo"
1= "Active"
0-1= "Total";
value agr
1 = "<55Years"
2 = ">55Years"
3 = "Missing";
invalue agr
"<55Years" = 1
">55Years" = 2
"Missing" = 3;
invalue sex
'F'=2
'M'=1
' '=3
'U'=4;
value sex
1 ='Male'
2 ='Female'
3 ='Missing'
4 ='Unknown';
value mod
1 = 'Gender'
2 = 'Age Group'
3 = 'Race'
4 = 'Age'
quit;
proc sort data=adam102.adsl out= S_adsl_0;
by sex trt01pN;
run;
proc summary data=s_adsl nway;
class trt01pN sex /mlf;
output out= Numer_1 (drop= _type_ rename=(_freq_= Numer));
format trt01pn trt.;
run;
proc summary data=s_adsl nway;
class trt01pn/mlf;
output out= Denom(drop= _type_ rename=(_freq_= Denom));
format trt01pn trt.;
run;
data NPCT_1;
merge numer_1 denom;
by trt01pn;
pct=numer/denom * 100;
NPCT=strip(put(numer, 5.))||" ("||strip(put(pct, 5.1))||") ";
run;
proc sort data=NPCT_1 out= S_NPCT;
by sex;
run;
proc transpose data=s_NPCT out=T_NPCT;
by sex;
id TRT01Pn;
var NPCT;
run;
Data S1_NPCT;
Length First_parameter $30 Placebo $20 Active $ 20 Total $ 20;
set T_NPCT end =eof;
Frq_Count=strip(input(sex, sex.));
Frq_seq=1;
first_parameter=" " ||put(frq_count, sex.);
output;
if eof then do;
first_parameter=put(frq_seq, mod.);
Frq_Count=0;
total=" ";
active=" ";
placebo=" ";
output;
end;
run;
proc sort data=S1_NPCT out=SS1_NPCT (drop=_name_ sex);
by frq_seq Frq_count;
run;
proc sort data=adam102.adsl out= S_adsl_1;
by agegr1 agegr1n trt01pN;
run;
proc summary data=s_adsl_1 nway;
class trt01pN agegr1n /mlf;
output out= Numer_2 (drop= _type_ rename=(_freq_= Numer));
format trt01pn trt.;
run;
data NPCT_2;
merge numer_2 denom;
by trt01pn;
pct=(numer/denom) * 100;
NPCT=strip(put(numer, 5.))||" ("||strip(put(pct, 5.1))||") ";
run;
proc sort data=NPCT_2 out= S_NPCT_2;
by AGEGR1N;
run;
proc transpose data=S_NPCT_2 out=T_NPCT_2;
by AGEGR1N;
id TRT01Pn;
var NPCT;
run;
Data S1_NPCT_1;
Length First_parameter $30 Placebo $20 Active $ 20 Total $ 20;
set T_NPCT_2 end =eof;
informat agegr1n agr.;
Frq_Count=strip(input(agegr1n, agr.));
Frq_seq=2;
first_parameter=" " ||put(frq_count, agr.);
output;
if eof then do;
first_parameter=put(frq_seq, mod.);
Frq_Count=0;
total=" ";
active=" ";
placebo=" ";
output;
end;
run;
proc sort data=S1_NPCT_1 out=SS1_NPCT_1 (drop=_name_ agegr1n);
by frq_seq Frq_count;
run;