OPTIONS LS=90 PS=55 NODATE NONUMBER NOCENTER NOFMTERR; ******************************************************; * Program Date Disk Programmer ; TITLE1 "Source: dmes99p24.sas 10/25/99 Ed Stanek "; * Description : Read in data with multiple lines ; * from Interferron in chronic grandulotomous Diesase; * study ; * Plot infection rates for treatment groups ; ******************************************************; LIBNAME old 'c:\data'; PROC FORMAT ; VALUE z1f 1="Interferon(1)" 2="Placebo(2)"; VALUE z8f 1="Male(1)" 2="Female(2)"; VALUE df 0="First/Last(0)" 1="Infection(1)" 2="Censored(2)"; DATA d (keep=id z1 z8 t1 d); INFILE 'c:\data\cgd.txt'; INPUT v1-v16; id=v1; z1=v4; z8=v11; t1=v13; d=v15; LABEL z1="Treatment/(Z1)" z8="Gender/(Z8)" t1="Time to/Event/(T1)" d="Event/(D)"; FORMAT z1 z1f. z8 z8f. d df.; ********************************; *** Create cross sectional and ; *** longitudinal data ; ********************************; PROC SORT DATA=d; BY id; DATA xsec1 (KEEP=id z1 z8) long1 (KEEP=id t1 d); SET d; BY id; IF FIRST.ID then OUTPUT xsec1; OUTPUT long1; **************************************************; *** Create Record with start time for each subject; *** add record to longitudinal data ; **************************************************; DATA xsec2 (KEEP=id t1 d); SET xsec1; t1=0; d=0; **************************************************; *** Recode event variable to 0 or 1 ; *** Create Record with start time for each subject; *** add record to longitudinal data ; **************************************************; DATA long2; SET xsec2 long1; IF d=2 THEN d=0; PROC SORT DATA=long2; BY id t1; ***********************; *** Create Variable that; *** has cumulative number; *** of infections ; ***********************; PROC SORT DATA=long2; BY id; DATA long3; SET long2; BY id; IF FIRST.id THEN ninf=0; RETAIN ninf; IF d=2 THEN d=0; ninf=ninf+d; LABEL ninf="Number of/Infections/(NINF)"; *********************************; * Add cross-sec vars to long vars; *********************************; PROC SORT DATA=xsec1; BY id; PROC SORT DATA=long3; BY id; DATA long4; MERGE xsec1 long3; BY id; ************************; *** Plot infection rates; *** by trt groups ; ************************; PROC SORT DATA=long4; BY z1 id t1; SYMBOL I=JOIN C=BLACK R=200; PROC GPLOT DATA=long4; BY z1 ; PLOT ninf*t1=id /NOLEGEND; TITLE1 "# of Infections by Treatment"; RUN;