/************************************************* SAS EXAMPLE -- SET UP FORMATS FOR VARIABLE VALUES RECODE VARIABLES INTO CATEGORIES ONEWAY FREQUENCY TABULATIONS CONTINGENCY TABLES (CROSS-TABS) CHI-SQUARE EXACT TESTS MANTEL-HAENSZEL STATISTICS MEASURES OF ASSOCIATION PROCS USED: PROC MEANS PROC FREQ FILENAME: FREQ.SAS *************************************************/ OPTIONS NODATE PAGENO=1 FORMDLIM=" "; PROC FORMAT; VALUE AGEFMT 1 = "1:19-29" 2 = "2:30-39" 3 = "3:>39"; VALUE CHOLFMT 1 = "1:>=240" 2 = "2:<240"; VALUE PILLFMT 1 = "1:NO PILL" 2 = "2:PILL"; VALUE RPILLFMT 1 = "1:PILL" 2 = "2:NO PILL"; VALUE WTFMT 1 = "1:<120 LB" 2 = "2:120-139 LB" 3 = "3:>=140 LB"; VALUE HIAGEFMT 1 = "1:YES" 2 = "2:NO"; RUN; DATA WERNER; INFILE "c:\temp\labdata\WERNER2.DAT"; INPUT ID 1-4 AGE 5-8 HT 9-12 WT 13-16 PILL 17-20 CHOL 21-24 ALB 25-28 CALC 29-32 URIC 33-36 PAIR 37-39; IF HT = 999 then HT = .; IF WT = 999 then WT = .; IF ALB = 99 then ALB = .; IF CALC = 99 then CALC = .; IF URIC = 99 then URIC = .; WTKG = WT*.39; HTCM = HT*2.54; BMI = WTKG/(HTCM/100)**2; IF BMI > 23 then HIBMI = 1; IF 0<=BMI<=23 then HIBMI = 0; IF AGE NOT=. THEN DO; IF AGE <= 29 THEN AGEGROUP=1; IF AGE > 29 AND AGE <= 39 THEN AGEGROUP=2; IF AGE > 39 THEN AGEGROUP=3; IF AGE > 39 THEN HIAGE=1; IF AGE <= 39 THEN HIAGE=2; END; IF CHOL >= 400 OR CHOL < 100 THEN CHOL=.; IF CHOL NOT=. THEN DO; IF CHOL >= 240 THEN HICHOL=1; IF CHOL < 240 THEN HICHOL=2; END; IF WT NOT=. THEN DO; IF WT < 120 THEN WTCAT=1; IF WT >= 120 AND WT < 140 THEN WTCAT=2; IF WT >= 140 THEN WTCAT=3; END; /*RECODE PILL FOR CONTINGENCY TABLES*/ IF PILL = 1 THEN RPILL=2; IF PILL = 2 THEN RPILL=1; /*ANOTHER WAY TO DO THIS RECODE WOULD BE: RPILL = 3-PILL;*/ LABEL HT = "HEIGHT (INCHES)" WT = "WEIGHT (POUNDS)" CHOL = "CHOLESTEROL" ALB = "ALBUMIN" CALC = "CALCIUM" URIC = "URIC ACID" WTKG = "WEIGHT (KG)" HTCM = "HEIGHT (CM)" BMI = "BODYMASS INDEX"; DROP WTKG HTCM; RUN; /*INITIAL DESCRIPTIVE STATISTICS TO CHECK DATA*/ PROC MEANS; TITLE "DESCRIPTIVE STATISTICS"; RUN; /*CHECK RECODES OF VARIABLES INTO CATEGORIES*/ PROC MEANS DATA=WERNER; CLASS WTCAT; VAR WT; FORMAT WTCAT WTFMT.; TITLE "CHECKING RECODE OF WT INTO WTCAT"; RUN; PROC MEANS DATA=WERNER; CLASS AGEGROUP; VAR AGE; FORMAT AGEGROUP AGEFMT.; TITLE "CHECKING RECODE OF AGE INTO AGEGROUP"; RUN; PROC MEANS DATA=WERNER; CLASS HICHOL; VAR CHOL; FORMAT HICHOL CHOLFMT.; TITLE "CHECKING RECODE OF CHOL INTO HICHOL"; RUN; PROC FREQ DATA=WERNER; TABLES PILL*RPILL/LIST; TITLE "CHECKING RECODE OF PILL INTO RPILL"; RUN; /*ONEWAY FREQUENCIES*/ TITLE "ONEWAY FREQUENCIES"; PROC FREQ DATA=WERNER; TABLES PILL WTCAT AGEGROUP HIAGE HICHOL; FORMAT AGEGROUP AGEFMT. HICHOL CHOLFMT. PILL PILLFMT. WTCAT WTFMT. HIAGE HIAGEFMT.; RUN; PROC FREQ DATA=WERNER; TABLES AGEGROUP / CHISQ TESTP=(.333, .333, .333); FORMAT AGEGROUP AGEFMT.; RUN; /*2x2 TABLES*/ TITLE "2x2 TABLE"; PROC FREQ DATA=WERNER; TABLES HIAGE*HICHOL / CHISQ RELRISK CMH ; FORMAT HIAGE HIAGEFMT. HICHOL CHOLFMT.; RUN; /*3X2 TABLE*/ PROC FREQ DATA=WERNER; TABLES AGEGROUP*HICHOL / CHISQ TREND CMH; exact fisher / mc; FORMAT AGEGROUP AGEFMT. HICHOL CHOLFMT. ; TITLE "3X2 TABLE"; TITLE2 "THE ROW VARIABLE IS ORDINAL"; RUN; /*ODDS RATIO AND RELATIVE RISK FOR EACH SUBGROUP OF 3X2 TABLE*/ PROC FREQ DATA=WERNER ; WHERE AGEGROUP =1 OR AGEGROUP=2; TABLES AGEGROUP*HICHOL /CHISQ RELRISK; FORMAT AGEGROUP AGEFMT. HICHOL CHOLFMT.; TITLE "RELATIVE RISK FOR AGEGROUP1 VS AGEGROUP2"; RUN; PROC FREQ DATA=WERNER ; WHERE AGEGROUP =1 OR AGEGROUP=3; TABLES AGEGROUP*HICHOL /CHISQ RELRISK; FORMAT AGEGROUP AGEFMT. HICHOL CHOLFMT.; TITLE "RELATIVE RISK FOR AGEGROUP1 VS AGEGROUP3"; RUN; PROC FREQ DATA=WERNER ; WHERE AGEGROUP =2 OR AGEGROUP=3; TABLES AGEGROUP*HICHOL /CHISQ RELRISK; FORMAT AGEGROUP AGEFMT. HICHOL CHOLFMT.; TITLE "RELATIVE RISK FOR AGEGROUP2 VS AGEGROUP3"; RUN; /*3X3 TABLE: BOTH ROW AND COLUMN ARE ORDINAL*/ TITLE "3X3 TABLE ORDINAL VARIABLES"; PROC FREQ DATA=WERNER; TABLES AGEGROUP*WTCAT / CHISQ CMH MEASURES CL; FORMAT AGEGROUP AGEFMT. WTCAT WTFMT.; RUN; /*STRATIFIED ANALYSIS FOR PILL AND NO PILL*/ PROC FREQ DATA=WERNER; TABLES PILL*HIAGE*HICHOL / CHISQ RELRISK CMH; FORMAT PILL PILLFMT. HIAGE HIAGEFMT. HICHOL CHOLFMT.; TITLE "2X2 TABLE STRATIFIED BY PILL"; RUN; PROC FREQ DATA=WERNER; TABLES PILL*AGEGROUP*HICHOL / CHISQ CMH; FORMAT PILL PILLFMT. AGEGROUP AGEFMT. HICHOL CHOLFMT. ; TITLE "3X2 TABLE STRATIFIED BY PILL" ; RUN; PROC FREQ DATA=WERNER; TABLES PILL*AGEGROUP*WTCAT / CHISQ CMH; FORMAT PILL PILLFMT. AGEGROUP AGEFMT. WTCAT WTFMT.; TITLE "3X3 TABLE STRATIFIED BY PILL"; RUN;