/* Written by Janel Hanmer May 2006 Checked against scores published in the 2001 MEPS (http://meps.ahrq.gov) Scoring comes from Ware Jr JE, Kosinski M, Keller SD. SF-12: How to Score the SF-12 Physical and Mental Health Summary Scales. 1995 The Health Institute, New England Medical Center. Boston, MA If any data are missing, the MCS and PCS scores will be missing This code presumes field names and responses are entered as followed: sf1 = in general from 1="excellent" to 5="poor" sf2 = moderate activites from 1="limited a lot" to 3="not limited at all" sf3 = several flights from 1="limited a lot" to 3="not limited at all" sf4 = physical accomplish less where 1="yes" and 2="no" sf5 = physical limit kind where 1="yes" and 2="no" sf6 = emotional accomplish less where 1="yes" and 2="no" sf7 = emotional less careful where 1="yes" and 2="no" sf8 = pain interfere from 1="not at all" to 5="extremely" sf9 = calm from 1="all of the time" to 6="none of the time" sf10 = energy from 1="all of the time" to 6="none of the time" sf11 = downhearted from 1="all of the time" to 6="none of the time" sf12 = social activites2 from 1="all of the time" to 5="none of the time" */ /*enter the location of your dataset here */ data SF12; set ' '; run; /* this uses 1990 norms */ data SF12; set SF12; pcs = 56.57706; mcs = 60.75781; if sf1=2 then pcs=pcs-1.31872; if sf1=3 then pcs=pcs-3.02396; if sf1=4 then pcs=pcs-5.56461; if sf1=5 then pcs=pcs-8.37399; if sf1=2 then mcs=mcs-.06064; if sf1=3 then mcs=mcs+.03482; if sf1=4 then mcs=mcs-.16891; if sf1=5 then mcs=mcs-1.71175; if sf2=1 then pcs=pcs-7.23216; if sf2=2 then pcs=pcs-3.45555; if sf2=1 then mcs=mcs+3.93115; if sf2=2 then mcs=mcs+1.86840; if sf3=1 then pcs=pcs-6.24397; if sf3=2 then pcs=pcs-2.73557; if sf3=1 then mcs=mcs+2.68282; if sf3=2 then mcs=mcs+1.43103; if sf4=1 then pcs=pcs-4.61617; if sf4=1 then mcs=mcs+1.44060; if sf5=1 then pcs=pcs-5.51747; if sf5=1 then mcs=mcs+1.66968; if sf6=1 then pcs=pcs+3.04365; if sf6=1 then mcs=mcs-6.82672; if sf7=1 then pcs=pcs+2.32091; if sf7=1 then mcs=mcs-5.69921; if sf8=2 then pcs=pcs-3.80130; if sf8=3 then pcs=pcs-6.50522; if sf8=4 then pcs=pcs-8.38063; if sf8=5 then pcs=pcs-11.25544; if sf8=2 then mcs=mcs+.90384; if sf8=3 then mcs=mcs+1.49384; if sf8=4 then mcs=mcs+1.76691; if sf8=5 then mcs=mcs+1.48619; if sf9=2 then pcs=pcs+.66514; if sf9=3 then pcs=pcs+1.36689; if sf9=4 then pcs=pcs+2.37241; if sf9=5 then pcs=pcs+2.90426; if sf9=6 then pcs=pcs+3.46638; if sf9=2 then mcs=mcs-1.94949; if sf9=3 then mcs=mcs-4.09842; if sf9=4 then mcs=mcs-6.31121; if sf9=5 then mcs=mcs-7.92717; if sf9=6 then mcs=mcs-10.19085; if sf10=2 then pcs=pcs-.42251; if sf10=3 then pcs=pcs-1.14387; if sf10=4 then pcs=pcs-1.61850; if sf10=5 then pcs=pcs-2.02168; if sf10=6 then pcs=pcs-2.44706; if sf10=2 then mcs=mcs-.92057; if sf10=3 then mcs=mcs-1.65178; if sf10=4 then mcs=mcs-3.29805; if sf10=5 then mcs=mcs-4.88962; if sf10=6 then mcs=mcs-6.02409; if sf11=1 then pcs=pcs+4.61446; if sf11=2 then pcs=pcs+3.41593; if sf11=3 then pcs=pcs+2.34247; if sf11=4 then pcs=pcs+1.28044; if sf11=5 then pcs=pcs+.41188; if sf11=1 then mcs=mcs-16.15395; if sf11=2 then mcs=mcs-10.77911; if sf11=3 then mcs=mcs-8.09914; if sf11=4 then mcs=mcs-4.59055; if sf11=5 then mcs=mcs-1.95934; if sf12=1 then pcs=pcs-.33682; if sf12=2 then pcs=pcs-.94342; if sf12=3 then pcs=pcs-.18043; if sf12=4 then pcs=pcs+.11038; if sf12=1 then mcs=mcs-6.29724; if sf12=2 then mcs=mcs-8.26066; if sf12=3 then mcs=mcs-5.63286; if sf12=4 then mcs=mcs-3.13896; run; data SF12; set SF12; if sf1<1 or sf2<1 or sf3<1 or sf4<1 or sf5<1 or sf6<1 or sf7<1 or sf8<1 or sf9<1 or sf10<1 or sf11<1 or sf12<1 then pcs=.; if sf1>5 or sf2>3 or sf3>3 or sf4>2 or sf5>2 or sf6>2 or sf7>2 or sf8>5 or sf9>6 or sf10>6 or sf11>6 or sf12>5 then pcs=.; if sf1<1 or sf2<1 or sf3<1 or sf4<1 or sf5<1 or sf6<1 or sf7<1 or sf8<1 or sf9<1 or sf10<1 or sf11<1 or sf12<1 then mcs=.; if sf1>5 or sf2>3 or sf3>3 or sf4>2 or sf5>2 or sf6>2 or sf7>2 or sf8>5 or sf9>6 or sf10>6 or sf11>6 or sf12>5 then mcs=.; run;