标题: 实用临床试验报表举例 [打印本页] 作者: shiyiming 时间: 2007-5-21 06:37 标题: 实用临床试验报表举例 [code:1b1e8]********************************************************************************************************************
*** THIS SECTION OF SAS CODES IS TO CREATE A TABLE OUTPUT IN CLINICAL TRIALS, WHICH INCLUDE TWO PARTS: ***
*** ONE IS DESCRIPTIVE ANALYSIS FOR CONTINUOUS VARIABLE SBP AND ANOTHER PART IS CATEGORICAL ANALYSIS ***
*** FOR A CATEGORICAL VARIABLE P, WHICH REFLECTS FOUR CLASSES OF THE DIFFERENCE BETWEEN DBP AND SBP (PULSE BP). ***
*** NOTE: DBP = DIASTOLIC BLOOD PRESSURE ***
*** SBP = SYSTOLIC BLOOD PRESSURE ***
********************************************************************************************************************;
*----------------*
| FORMAT LIBRARY |
*----------------*;
proc format;
value stat 1='N'
2='Mean'
3='Median'
4='Maximum'
5='Minimum'
6='Standard Deviation';
value order 1='Categorical'
2='Numeric';
run;
data null;
set total;
call symput('Center_'||put(cno,1.),compress(put(count,3.)));
run;
*----------------------------*
| START CATEGORICAL ANALYSIS |
*----------------------------*;
*** GET THE DIFFERENCE OF DBP AND SBP(PULSE BP) AND CLASSIFY IT TO FOUR CLASSIFICATIONS ***;
data jw2;
set jw1;
diff=sbp-dbp;
if diff<30 then p=1;
else if 30<=diff<40 then p=2;
else if 40<=diff<50 then p=3;
else p=4;
run;
proc sort data=jw2 out=jw3;
by cno patno;
run;
*** FREQUENCY DISTRIBUTION FOR THE PULSE PRESSURE CLASSIFICATION ***;
proc freq data=jw3;
by cno;
tables p/out=freq;
run;
proc sort data=freq out=freq;
by p;
proc transpose data=freq out=cate prefix=cnt;
by p;
var count;
id cno;
run;
*** FILL IN BLANK CATEGORY OF PULSE BP ***;
data frame;
do p=1 to 4;
output;
end;
run;
*** FINAL CATEGORICAL ANALYSIS RESULTS DATASET ***;
data cate;
merge frame(in=a) cate(drop=_NAME_ _LABEL_);
by p;
if a;
array cnt(2) cnt1-cnt2;
do i=1 to 2;
if cnt(i)=. then cnt(i)=0;
end;