/*****************************************************/ /* STAT 330, Fall 2011 */ /* Homework 4 */ /*****************************************************/ options nocenter nodate nonumber pageno=1 pagesize=55 linesize=90; /* 4.1.1 */ data asp2011; infile "G:\Classes\STAT 330\2011-4\homework\ASP Oct 2011.txt" dlm=',' dsd firstobs=2; informat name $30. country $3. event1-event11 $3. earn2011 earnCareer comma8.; input rank name country event1-event11 totalPts earn2011 earnCareer; run; data recode; set asp2011; array pastEvents event1-event7; array comingEvents event8-event11; array allEvents event1-event11; do over pastEvents; if pastEvents = "-" then pastEvents = 'ABS'; end; do over comingEvents; if comingEvents = "-" then comingEvents = ''; end; ptsCalc = 0; do over allEvents; if allEvents = '1' then ptsCalc = ptsCalc + 10000; if allEvents = '2' then ptsCalc = ptsCalc + 8000; if allEvents = '3' then ptsCalc = ptsCalc + 6500; if allEvents = '5' then ptsCalc = ptsCalc + 5200; if allEvents = '9' then ptsCalc = ptsCalc + 4000; if allEvents = '13' then ptsCalc = ptsCalc + 1750; if allEvents = '25' then ptsCalc = ptsCalc + 500; if allEvents = 'INJ' then ptsCalc = ptsCalc + 500; if allEvents = 'ABS' then ptsCalc = ptsCalc + 0; end; dummy=0; if ptsCalc = totalPts then dummy=1; last = scan(name,1,","); first = scan(name,2,","); drop name; run; proc freq data=recode; tables country; run; data catchKelly; set recode; retain slaterPts; if last="Slater" then slaterPts = ptsCalc; behind = ptsCalc - slaterPts; canWin = 0; if (ptsCalc + 40000) > (slaterPts + 2000) then canWin=1; run; /* 4.2.1 */ libname dataLoc "C:\Classes\STAT 330\2011-4\Homework"; data senateSals; set dataLoc.senateSals; last = scan(name,-1); first = scan(name,1); if last in ("Jr", "Sr") then last = scan(name, -2); drop agency jobTitle; run; proc sort data=senateSals; by last first; run; title "California State Legislature: 2010 Salaries"; proc print data=senateSals obs="Rep" label; var name pay2010; label pay2010="2010 Salary" name="Name"; format pay2010 dollar13.2; sum pay2010; run; title; /* 4.2.1 */ /*** data brfss2010; infile "C:\Classes\STAT 330\2011-4\homework\BRFSS Subset.txt"; input state $ 1-2 smoke100 98 smokday2 99 stopsmk2 100 lastsmk1 101-102 usenow3 103 age 104-105 sex 147 drnkAny4 149 alcday4 150-152 aveDrnk2 153-154 drnk3GE5 155-156 maxDrnks 157-158; run; data brfssRecode; set brfss2010; if 18 <= age <= 34 then ageCat=1; else if 35 <= age <= 64 then ageCat=2; else if 65 <= age <= 99 then ageCat=3; else ageCat=9; if smokday2 in (1,2) then smokeCat=3; * Current smoker; else if smoke100=1 then smokeCat=2; * Former smoker; else if smoke100=2 then smokeCat=1; * Never smoker; else smokeCat=9; * Unknown smoker; if ageCat in (1,2,3) and smokeCat in (1,2,3) and sex in (1,2); run; data dataLoc.brfssRecode; set brfssRecode; run; ***/ libname dataLoc "C:\Classes\STAT 330\2011-4\Homework"; proc format; value smoking 1="Never" 2="Former" 3="Current" 9="Unknown"; value ageGrp 1="18-34" 2="35-64" 3="65+"; value gender 1="Male" 2="Female"; run; ods noptitle; title "BRFSS, 2010: Smoking Status by Age (n=4,297)"; proc freq data=dataLoc.brfssRecode; tables ageCat*smokeCat; format ageCat ageGrp. smokeCat smoking.; label ageCat="Age Group" smokeCat="Smoking Status"; run; title; title "BRFSS, 2010: Descriptive Statistics for Age, by Smoking Status (n=4,297)"; proc means data=dataLoc.brfssRecode maxdec=2 n mean median stddev; class smokeCat; var age; format smokeCat smoking.; label smokeCat="Smoking Status" age="(Respondent Age)"; run; title; data drinking; set dataLoc.brfssRecode; aveDrinks = aveDrnk2; if aveDrinks in (77,99,.) then aveDrinks=.; maxDrinks = maxDrnks; if maxDrinks in (77,99,.) then maxDrinks=.; run; title "BRFSS, 2010: Ave and Max Drinks Per Sitting, by Smoking Status (n=1,934 and 1,910)"; proc means data=drinking maxdec=2 /*fw=7*/ nonobs n mean median min max; class smokeCat; var aveDrinks maxDrinks; format smokeCat smoking.; label smokeCat="Smoking Status" aveDrinks="(Ave # of Drinks)" maxDrinks="(Max # of Drinks)"; run; title;