/*****************************************************/ /* STAT 330, Fall 2011 */ /* Midterm Exam */ /*****************************************************/ options nocenter nodate nonumber pageno=1 pagesize=55 linesize=90; %let drive = C; libname dataLoc "&drive:\Classes\STAT 330\2011-4\Exams\Midterm\"; /* 1 */ filename readBird "&drive:\Classes\STAT 330\2011-4\Exams\Midterm\Bird Survey MA.csv"; data birds; infile readBird dsd firstobs=2; informat siteName $50. commonName $40.; input siteName year commonName number; if commonName="ERROR" then commonName="Not Available"; run; data dataLoc.birds; set birds; run; data finches; set birds; if index(upcase(commonName), "FINCH") > 0; run; proc freq data=finches; tables commonName; run; /* 2 */ filename readTax dde "Excel|&drive:\Classes\STAT 330\2011-4\Exams\Midterm\[Indiana Property Tax Rates.xlsx]Sheet1!C1:C5"; data propTaxes; infile readTax notab dlm='09'x dsd missover firstobs=2; informat county $20. name $50.; input county district name propTax rank; run; data dataLoc.propTaxes; set propTaxes; run; proc means data=propTaxes maxdec=3 n mean stddev; class county; var propTax; run; data maxRank; set propTaxes; if rank=1; run; title "Property Taxes for Lake County, Indiana"; proc print data=propTaxes noobs label; where county="Lake"; var name propTax rank; label name="District Name" propTax="Property Tax" rank="Rank"; run; /* 3 */ filename readCPS "&drive:\Classes\STAT 330\2011-4\Exams\Midterm\Oct 2010 CPS Subset.txt"; data cpsRaw; infile readCPS lrecl=1070; input peage 122-123 pesex 129-130 peeduca 137-138 puwk 182-183 pereti 200-201 hecomp11 1041-1042 hecomp12 1043-1044 hecomp13 1045-1046 henet2a 1049-1050 heserv32 1057-1058 heserv33 1059-1060 heserv36 1065-1066; run; data dataLoc.cpsRaw; set cpsRaw; run; data cpsUse; set cpsRaw; array allVars _all_; do over allVars; if allVars=-1 then allVars=.; end; if peeduca in (31,32,33,34,35,36,37,38) then eduCat=1; else if peeduca = 39 then eduCat=2; else if peeduca = 40 then eduCat=3; else if peeduca in (41,42) then eduCat=4; else if peeduca = 43 then eduCat=5; else if peeduca in (44,45,46) then eduCat=6; else eduCat=.; if peage >= 18; run; proc freq data=cpsUse; tables eduCat; run; /* 4 */ filename readGPA "&drive:\Classes\STAT 330\2011-4\Exams\Midterm\GPA.txt"; data gpas; infile readGPA firstobs=3; input ID gpa; run; data dataLoc.gpas; set gpas; run; data keepFirst; set gpas; retain lastID firstGPA; if lastID ^= id then do; firstGPA = gpa; lastID = id; end; run; proc print; run; data addQtr; set gpas; retain lastID qtr firstGPA; if lastID ^= id then do; firstGPA = gpa; qtr = 0; lastID = id; end; qtr = qtr + 1; run; proc print; run;