* SAS CODE FOR SCORING 36-ITEM HEALTH SURVEY 1.0 * WRITTEN BY RON D. HAYS, RAND, 310-393-0411 (EXT. 7581) ***; DATA TEMP1; SET TEMP; RENAME I1=I1 I2=I2 I3=I3 I4=I4 I5=I5 I6=I6 I7=I7 I8=I8 I9=I9 I10=I10 I11=I11 I12=I12 I13=I13 I14=I14 I15=I15 I16=I16 I17=I17 I18=I18 I19=I19 I20=I20 I21=I21 I22=I22 I23=I23 I24=I24 I25=I25 I26=I26 I27=I27 I28=I28 I29=I29 I30=I30 I31=I31 I32=I32 I33=I33 I34=I34 I35=I35 I36=I36;RUN; *****************************************************************; DATA TEMP1;SET TEMP1; ARRAY RFIVEPT (I) I1 I2 I20 I22 I34 I36; ARRAY THREEPT (I) I3 I4 I5 I6 I7 I8 I9 I10 I11 I12; ARRAY TWOPT (I) I13 I14 I15 I16 I17 I18 I19; ARRAY RSIXPT (I) I21 I23 I26 I27 I30; ARRAY SIXPT (I) I24 I25 I28 I29 I31; ARRAY FIVEPT (I) I32 I33 I35; *****************************************************************; I1SF=I1;I21SF=I21;I22SF=I22; DO OVER RFIVEPT; IF RFIVEPT=1 THEN RFIVEPT=100; ELSE IF RFIVEPT=2 THEN RFIVEPT=75; ELSE IF RFIVEPT=3 THEN RFIVEPT=50; ELSE IF RFIVEPT=4 THEN RFIVEPT=25; ELSE IF RFIVEPT=5 THEN RFIVEPT=0;END; DO OVER THREEPT; IF THREEPT=1 THEN THREEPT=0; ELSE IF THREEPT=2 THEN THREEPT=50; ELSE IF THREEPT=3 THEN THREEPT=100;END; DO OVER TWOPT; IF TWOPT=1 THEN TWOPT=0; ELSE IF TWOPT=2 THEN TWOPT=100;END; DO OVER RSIXPT; IF RSIXPT=1 THEN RSIXPT=100; ELSE IF RSIXPT=2 THEN RSIXPT=80; ELSE IF RSIXPT=3 THEN RSIXPT=60; ELSE IF RSIXPT=4 THEN RSIXPT=40; ELSE IF RSIXPT=5 THEN RSIXPT=20; ELSE IF RSIXPT=6 THEN RSIXPT=0;END; DO OVER SIXPT; IF SIXPT=1 THEN SIXPT=0; ELSE IF SIXPT=2 THEN SIXPT=20; ELSE IF SIXPT=3 THEN SIXPT=40; ELSE IF SIXPT=4 THEN SIXPT=60; ELSE IF SIXPT=5 THEN SIXPT=80; ELSE IF SIXPT=6 THEN SIXPT=100;END; DO OVER FIVEPT; IF FIVEPT=1 THEN FIVEPT=0; ELSE IF FIVEPT=2 THEN FIVEPT=25; ELSE IF FIVEPT=3 THEN FIVEPT=50; ELSE IF FIVEPT=4 THEN FIVEPT=75; ELSE IF FIVEPT=5 THEN FIVEPT=100;END; *****************************************************************; IF I1SF=1 THEN I1SF=5.0; ELSE IF I1SF=2 THEN I1SF=4.4; ELSE IF I1SF=3 THEN I1SF=3.4; ELSE IF I1SF=4 THEN I1SF=2.0; ELSE IF I1SF=5 THEN I1SF=1.0; I1SF=(I1SF-1)*25; IF I21SF>.Z AND I22SF>.Z THEN DO; IF I22SF=1 AND I21SF=1 THEN I22SF=6; ELSE IF I22SF=1 AND 7>I21SF>1 THEN I22SF=5; ELSE IF I22SF=2 AND 7>I21SF>0 THEN I22SF=4; ELSE IF I22SF=3 AND 7>I21SF>0 THEN I22SF=3; ELSE IF I22SF=4 AND 7>I21SF>0 THEN I22SF=2; ELSE IF I22SF=5 AND 7>I21SF>0 THEN I22SF=1;END; IF I21SF<=.Z AND I22SF>.Z THEN DO; IF I22SF=1 THEN I22SF=6.0; ELSE IF I22SF=2 THEN I22SF=4.75; ELSE IF I22SF=3 THEN I22SF=3.5; ELSE IF I22SF=4 THEN I22SF=2.25; ELSE IF I22SF=5 THEN I22SF=1.0;END; IF I21SF=1 THEN I21SF=6.0; ELSE IF I21SF=2 THEN I21SF=5.4; ELSE IF I21SF=3 THEN I21SF=4.2; ELSE IF I21SF=4 THEN I21SF=3.1; ELSE IF I21SF=5 THEN I21SF=2.2; ELSE IF I21SF=6 THEN I21SF=1.0; I21SF=(I21SF-1)*20;I22SF=(I22SF-1)*20; ***************************************************; PHYFUN10=MEAN(I3,I4,I5,I6,I7,I8,I9,I10,I11,I12); ROLEP4=MEAN(I13,I14,I15,I16); PAIN2=MEAN(I21,I22);SFPAIN=MEAN(I21SF,I22SF); GENH5=MEAN(I1,I33,I34,I35,I36); SFGENH5=MEAN(I1SF,I33,I34,I35,I36); EMOT5=MEAN(I24,I25,I26,I28,I30); ROLEE3=MEAN(I17,I18,I19); SOCFUN2=MEAN(I20,I32); ENFAT4=MEAN(I23,I27,I29,I31);RUN; ****************************************************; DATA TEMP2; SET TEMP1; IF 18<=AGE AND MALE>=0 THEN DO; SFAGE1=0;SFAGE2=0;SFAGE3=0;SFAGE4=0;SFAGE5=0; SFAGE6=0;SFAGE7=0;SFAGE8=0;SFAGE9=0; SFAGE10=0;SFAGE11=0;SFAGE12=0; END; IF 18<=AGE<=24 AND MALE=1 THEN SFAGE1=1; IF 24=0 THEN GH1_1=0; IF I1=25 THEN GH1_2=1; ELSE IF I1>=0 THEN GH1_2=0; IF I1=50 THEN GH1_3=1; ELSE IF I1>=0 THEN GH1_3=0; IF I1=75 THEN GH1_4=1; ELSE IF I1>=0 THEN GH1_4=0; IF I4=0 THEN PF02_1=1; ELSE IF I4>=0 THEN PF02_1=0; IF I4=50 THEN PF02_2=1; ELSE IF I4>=0 THEN PF02_2=0; IF I6=0 THEN PF04_1=1; ELSE IF I6>=0 THEN PF04_1=0; IF I6=50 THEN PF04_2=1; ELSE IF I6>=0 THEN PF04_2=0; IF I14=0 THEN RP2_1=1; ELSE IF I14>=0 THEN RP2_1=0; IF I15=0 THEN RP3_1=1; ELSE IF I15>=0 THEN RP3_1=0; IF I18=0 THEN RE2_1=1; ELSE IF I18>=0 THEN RE2_1=0; IF I19=0 THEN RE3_1=1; ELSE IF I19>=0 THEN RE3_1=0; IF I22=0 THEN BP2_1=1; ELSE IF I22>=0 THEN BP2_1=0; IF I22=25 THEN BP2_2=1; ELSE IF I22>=0 THEN BP2_2=0; IF I22=50 THEN BP2_3=1; ELSE IF I22>=0 THEN BP2_3=0; IF I22=75 THEN BP2_4=1; ELSE IF I22>=0 THEN BP2_4=0; IF I26=0 THEN EM3_1=1; ELSE IF I26>=0 THEN EM3_1=0; IF I26=20 THEN EM3_2=1; ELSE IF I26>=0 THEN EM3_2=0; IF I26=40 THEN EM3_3=1; ELSE IF I26>=0 THEN EM3_3=0; IF I26=60 THEN EM3_4=1; ELSE IF I26>=0 THEN EM3_4=0; IF I26=80 THEN EM3_5=1; ELSE IF I26>=0 THEN EM3_5=0; IF I27=0 THEN EN2_1=1; ELSE IF I27>=0 THEN EN2_1=0; IF I27=20 THEN EN2_2=1; ELSE IF I27>=0 THEN EN2_2=0; IF I27=40 THEN EN2_3=1; ELSE IF I27>=0 THEN EN2_3=0; IF I27=60 THEN EN2_4=1; ELSE IF I27>=0 THEN EN2_4=0; IF I27=80 THEN EN2_5=1; ELSE IF I27>=0 THEN EN2_5=0; IF I28=0 THEN EM4_1=1; ELSE IF I28>=0 THEN EM4_1=0; IF I28=20 THEN EM4_2=1; ELSE IF I28>=0 THEN EM4_2=0; IF I28=40 THEN EM4_3=1; ELSE IF I28>=0 THEN EM4_3=0; IF I28=60 THEN EM4_4=1; ELSE IF I28>=0 THEN EM4_4=0; IF I28=80 THEN EM4_5=1; ELSE IF I28>=0 THEN EM4_5=0; IF I32=0 THEN SF2_1=1; ELSE IF I32>=0 THEN SF2_1=0; IF I32=25 THEN SF2_2=1; ELSE IF I32>=0 THEN SF2_2=0; IF I32=50 THEN SF2_3=1; ELSE IF I32>=0 THEN SF2_3=0; IF I32=75 THEN SF2_4=1; ELSE IF I32>=0 THEN SF2_4=0; *****************************************************************; *** Then create SF-12 aggregates as follows: ; RAWPCS12 = (PF02_1 * -7.23216) + (PF02_2 * -3.45555) + (PF04_1 * -6.24397) + (PF04_2 * -2.73557) + (RP2_1 * -4.61617) + (RP3_1 * -5.51747) + (BP2_1 * -11.25544) + (BP2_2 * -8.38063) + (BP2_3 * -6.50522) + (BP2_4 * -3.80130) + (GH1_1 * -8.37399) + (GH1_2 * -5.56461) + (GH1_3 * -3.02396) + (GH1_4 * -1.31872) + (EN2_1 * -2.44706) + (EN2_2 * -2.02168) + (EN2_3 * -1.61850) + (EN2_4 * -1.14387) + (EN2_5 * -0.42251) + (SF2_1 * -0.33682) + (SF2_2 * -0.94342) + (SF2_3 * -0.18043) + (SF2_4 * 0.11038) + (RE2_1 * 3.04365) + (RE3_1 * 2.32091) + (EM3_1 * 3.46638) + (EM3_2 * 2.90426) + (EM3_3 * 2.37241) + (EM3_4 * 1.36689) + (EM3_5 * 0.66514) + (EM4_1 * 4.61446) + (EM4_2 * 3.41593) + (EM4_3 * 2.34247) + (EM4_4 * 1.28044) + (EM4_5 * 0.41188); RAWMCS12 = (PF02_1 * 3.93115) + (PF02_2 * 1.86840) + (PF04_1 * 2.68282) + (PF04_2 * 1.43103) + (RP2_1 * 1.44060) + (RP3_1 * 1.66968) + (BP2_1 * 1.48619) + (BP2_2 * 1.76691) + (BP2_3 * 1.49384) + (BP2_4 * 0.90384) + (GH1_1 * -1.71175) + (GH1_2 * -0.16891) + (GH1_3 * 0.03482) + (GH1_4 * -0.06064) + (EN2_1 * -6.02409) + (EN2_2 * -4.88962) + (EN2_3 * -3.29805) + (EN2_4 * -1.65178) + (EN2_5 * -0.92057) + (SF2_1 * -6.29724) + (SF2_2 * -8.26066) + (SF2_3 * -5.63286) + (SF2_4 * -3.13896) + (RE2_1 * -6.82672) + (RE3_1 * -5.69921) + (EM3_1 * -10.19085) + (EM3_2 * -7.92717) + (EM3_3 * -6.31121) + (EM3_4 * -4.09842) + (EM3_5 * -1.94949) + (EM4_1 * -16.15395) + (EM4_2 * -10.77911) + (EM4_3 * -8.09914) + (EM4_4 * -4.59055) + (EM4_5 * -1.95934); *****************************************************************; *** Finally, transform the aggregates as follows: ; RPCS12 = RAWPCS12 + 56.57706 ; RMCS12 = RAWMCS12 + 60.75781 ; run; *****************************************************************; PROC MEANS; VAR PHYFUN10 PF_T ROLEP4 RP_T SFPAIN BP_T SFGENH5 GH_T EMOT5 EM_T ROLEE3 RE_T SOCFUN2 SF_T ENFAT4 EN_T AGG_PHYS AGG_MENT; run; *****************************************************************;