50% found this document useful (2 votes)
1K views

Learning SAS by Example A Programmers Guide Answers

SAS by example

Uploaded by

bhanu_billa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
50% found this document useful (2 votes)
1K views

Learning SAS by Example A Programmers Guide Answers

SAS by example

Uploaded by

bhanu_billa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 42
558 Learning SAS by Example: A Programmer's Guide Chapter 1 Solutions 2 nunber) is 10 sass * Default length for numerics is 8 */ Chapter 2 Solutions ae Ren Cody 2006 © ‘Means and sums of Portfolio Variable: ion mean sum maxde Solutions to Odd. Numbered Problems 589 = LeSAv + (R/E)tE#3 = 125; Chapter 3 Solutions ea fence) / 4; average = (english + History + Mach + ing of SCORES"; 323; daca company; infile 'c:\books\te: LastName sing \conpany po § Sal /+ optional statement format Salary dotlari0.; ng of COMPANY" of TESTDATAY 360 Learning SAS by Example: A Programmer's Guide roo pring data-testdata noobe; 307; data cache; infile ‘¢:\books\learning\geccaching txt’ padi wiote: PAD not necessary but a good idea See Chapter 21 for a discuasion of this: imput GeoName $ 1-20 Bongdeg 21-22 Longin 23-28 ZatDeg 29-30 Eatmin 31-36; title tListing of CACHE roo print datascache noobs, +329; data cache; infile ‘c:\books\Learning\geccaching. txt’ pad; imput @1 GesName $20 21 Longdeg 2 223 tongmin 5 029 Lacdeg = 2 631 batmin 6.5 title "Listing of CACHES; proe print datacache noobs; sa-at; data employ infile 'c:\books\learning\employee.csv' dsd missover; srimote: missover 1s not needed but a good idea suncover will also work See Chapter 21 for an explanation of missover and truncover ingile opticne at ID $3. Name §20. Depars $8 DareHire mnddyyi0. Salary dollars. input TD Name Depart DaveHtire Salary format DateHire dates; title ‘Listing of EMPLOY"; proc print data-enploy noobs; Solutions to Odd-Numbered Problems 561 Chapter 4 Solutions Libname learn ‘e:\books\learning’; daca learn.pern, Enput ID: $3. Gender height Weight; bok : mmddyyio abel pop = ‘Dace of Bi Height = ‘Height in inches Weight = ‘Weight In pounds’; format BOB daced.; 001 @ 10/21/1946 68 002 F 5/26/1950 63 1. 003 m S/1i/ieai 72 2 aoe m 7/4/1983 70 128 905 F 12/25/2005 30 40 ‘contents of data set PERM" 1403 fname perm ‘e:\hooks\learning input Age Gender $ (Quesi-guess) ($1.); 23M 15243 30 F 11223 42 w 23555 4@ F 55541 55 F 42232 52 F 33333 68 m 44122 ‘*#topening up a new session, you need a Libnane atatemenc, ibname perm ‘22h aks \ earning ticle "Computing Average Age"? proc means data=perm. survey2007 362 Learning SAS by Example: A Programmer's Guide Chapter 5 Solutions value §party 'D value $Likert ‘1 ‘Strongly Disagree! 2 3 5: = ‘strongly Agree nput Age Party : $1. (Quesi-gu ay ist. + Ds label Quest = * ing a good job Ques? ing a good job" Ques} = ‘taxes are too high Quesd = ‘Government should cut spending’; format age agegry. Party Sparty Quesi-Quesd Siikert.; 23 22 87 a a8 ‘ ° 2a 5 23 3 ae proc freq data=voter; tables Quesi-gues4; Solutions to Odd. Numbered Problems 563 15-3 nput Color : $1. 68 REGYY..2GRBGYPOOVVE value §color 'R','8','G! = ‘rou 1 Heitor = 'eroup 2" other = ‘Group 3" proc freq datascolors; tables color / nocum mij ‘color Frequencies (Grouped) * ng, ‘The MISSING option places the frequency of missing values in the body of the table and causes the percentages to be fornat color $color.; ibname learn ‘e;\books\learning’ ; options fmesearca= (learn) ; proc format Library=Learn’ fimtLib: value yesno 1='¥es' 2=!No'; value §yesno 'Y'="Yes" value fgender '"='Nale value age20y> 61-80 Select File --> import pata Choose Excel and select Srugtest.xla 364 Learning SAS by Example: A Programmer's Guide a5 Db 3 achool, put Age Qu f age = 12 else If Age if quiz = "4 el ouiz Quiz else i2 Quiz 1 \books \learning\soccer x18 2: $1. mid then Grae = 13 then Gr then Quizs: = 'B! Shen c! then ise if Quiz = 'F! then Courgegrade = ,2*Quizcra 292 95 12 B 8 68 1c 7875 13 A 92 93 12 P55 62 a3 Bae 62 title “Listing of scwoon*; proc print data-school noob: “703 citle "selec! ple! "9888" or 5: uiz Quiz Quiz Quiz ees from SA Enpip Solutions to Odd-Numbered Problems 568 ength Cholsroup $ 6 zelect; when (missing (chol}} CholGroup = * +; when (Chol le i10) CholGroup = ‘Low’; when (Chol le 140) CholGreup = ‘Medium’; otherwise CholGro’ Higa! end, title *histing of BLOOD ‘loed noobs sitle ‘Selected cheervations from BICYCLES proc print data-learn. bicycles noobs where Model eq Road Bike" and Unircost gt 2500 or Model eq *Hybrid* and Unizcoat gt 650 ‘Wose: parentheses ave not needed since Che AND operation is performed before OR, You may include then if you wish; DEP, label SBP = ‘systolic Blood Pressure" DBP = ‘Diastolic Blood Pressure"; 120 80 eB 96 100 82 150 98 100 stenote: thia program assumes there are no missing values for >ulse or SRP; 366 Learning SAS by Example: A Programmer's Guide daca newvitate; set vitals; LE Age 1 50 and nov missing (Age) then dor Lf Pulse le 70 then PulseGroup = ‘Low ' else Pulsetroup = 'High'; AE SBP le 140 then SBPGroup = ‘Low 'y else sapcroup = ‘High’: end: else iz Age ge 50 then do; Af Pulse lt 7 then ?ulsecroup = ‘Low’; else PulseGroup = ‘High'; Lf SBP le 140 then SBPGroup else SBPGroup = "High's end; "tow": title ‘histing of NEWWITALS* proc print datasnewvitals noobs +823; data test; input 8 Subj + 1) aacalines; 30 85 92 15 76 88 be 82 92 72 68 70 wel-Scored title tListing of TEST? roe print data-tes= noche; +825; data logs: doN = 1 to 20; Log = Logit) output; end; title “Listing of toss" proc print data-logs nosh; see7; data plotit do x= 0 to 10 by 1 Solutions to Odd. Numbered Problems 567 y = 31xt+2 - 54x + 10 output; ena; goptions symbol proc gplot datasplotit; plot y * x: quit +829; data temperatures; do Day = 'Mon', 'Pues*, "Wed", ‘Thu’, "Frit, ‘Sat", 'Sun'; input Tem @; output; end; aacalines; 70.72:16 76:17:78 8S title “Listing of TEMPERATURES"; proc print datastemperatures noobs; seea; data temperature: Tength city $75 do City = "Dallas*, ‘Houston’ Go Hour = 1 to 24; input Temp @; datalines; 80 61 82 83 64 84 87 88 69 89 91 93 93 95 96 97 99 95 92 90 88 85 84 80 78 76:77:78 80 &1 42 62 86 88 90 92 $2 93 96 94 92 90 ee 86 82 78 76 74 368 Learning SAS by Example: A Programmer's Guide ves in allag and Hous! 1 to 999 until (Amount ge 30000! 900 + Amount * (0425/4); ng of Mowey™ 33 madyyo daves.; age = yrait (Dos, visit, ‘Actual }; format DOR Vieit dazed 90110/21/185011Nev2008, 00202 /02/198825May2005, 00322/25/200825ec2006 92/23/05 Solutions to Odd. Numbered Problems 569 03/25/15 95/09/06 options year /* Good idea to set yearcutof! back to the default after you change it */ title ‘Listing of YEARIS10_2006"; proc print datasyear1910_2006 nooks 19-5; data Srea: ‘set learn. hosp (keep=AdnitDate) ; Day = weekday (AdnitDate) ; Month = month (AdnitDate) Year = year (AdmicDace} ; proc format value days 1 “Tue! ‘Sep es for Hospital Admissions"; req: tables Day wonth Year / nocum nopercent, format Day days. Monta months. +909; title "Adrissions before suly 15, 2002" proc print dataslearn.hosp; where AdmitDate le '01sul2002'a and AcricDate is not missing 19-9; data daces; input Day Month Year; Af missing(Day) then 3: dy (Month, 15, Year) ; else Date = mdy (Month, Day, Year}; format Date mnddyy10. datalines; 25 12 2005 5 2002 510 Learning SAS by Example: A Programmer's Guide fe “Lia! sof DATES"; proc print data=dates nocks Quarters = intek('a Jan2006"A,VisivDace) ; proc print data-return noobs Chapter 10 Solutions waere Gender eq Combined = .001*WEC + REC: male‘ and Blocdtype='Az! title "Listing of suasi proc print data=subset_a noobs ooltwac + Re; ‘Peale! and Blocdtyp Ag! and Combined ge 2 Solutions to Odd-Numbered Problems S71 ticle "Listing of susser_er proc print data=subset_» noobs; 10-3; data lowale lowfenale; set learn.blood; waere Chol 1¢ 100 and Chol ia not missing J+ alternative statenent Where Chol 1t 160 and not missing {chol) if Gender = ‘Female’ chen output lowfemale; else if Gender = ‘Male’ then ouput lownale; title thisting of LONMALE; proe print data=lowmale noobs; title "Listing of LONFEMALE*; proc print data-lowfenale necks) 10-5; title *histing of Tivewroay:; proc print data=learn. inventory noobs; title "Listing of NEWPRODUCTS*; proe print data-leara.newprod daca updated; set learn. inventory learn nesproducts; title thisting of updazea"; proe print data-updated, 572 Learning SAS by Example: A Programmer's Guide 10-7; prog means data=learn.gym noprint; var fee; output outsMeanfee(drop=_type_ _freq_) Mean-Avefee; gata percent: get learn. gym Af n= 1 then set Meanfee; FeePercent = round(100*fee / avetee) arop Avefee; title tListing of PERCEND* pros print data-PERCENT, 10-9; proc sort dat. by Nodels ry outsinventory; proc sort data-learn.purchase out-purchase; by Model! by Model! if Inpurchase; potalprice = Quantity*?rice; format Totalprice dollar8.2; title “Listing of PURLPRICE*; proc print data-pur_price necks; “10-11; options mergenoby=nowarn: gata try; merge learn. inventory Learn.purchase: title "Listing of TRYIt roe print dataceyl; options mergenohs data try2; Solutions to Odd. Numbered Problems 873 merge learn. inventory learn.purchase, title ‘Listing of TaY2 proc print Gata-tey2; options mergenobyserror; data try; rerge Learn. inventory Learn.perchaser title ‘Listing of TY3" proc print data-teyé s10-13; /* Solution where the numeric identifier is converted daca survey?; set learn. survey (rename=(1D 3D = put (NumID, 23.}; Grop NumID; proc sort data-survey2; by ID data combine: nerge demographic survey2; by ID; title thisting of cosine; proe print data=conbine noobs; /* Solution wheze the chazacter to a numeric value */ gata demographic: set learn. denograzhic (rename MunD) ): identifier is converted (ap = cnarz)); 574 Learning SAS by Example: A Programmer's Guide jchar19,3.) by ID: datasdenographic; proc sort data-learn.survey2 out-survey? by TD merge demographic survey2; title "Listing of CoMBINE™; Chapter 11 Solutions (ieight* 0254) +62, BurRownd = round (3M2) ; BEERound, fenth = round(BMZ, .1); round (2MI,5) ; bleed; = missing (WBC) then call missing(Gender,28¢, Chol) Solutions to Odd. Numbered Problems 578 title thisting of Mrss_sioop:; proe print data=miss bleed noobs; suns; data psychscore; ‘set learn.psych: Scorehve = mean (largest (1,0f Scorel-scorss) , largest (2,0f Scorel-scores}, largest (3, 0f Scoel-scores) } Af n(of Quesi-guesid) ge 7 then QuesAve = mean(of Quesi-guesi0) ; Composit = ScoreAve + 10*Quesave; keep ID ScoreAve QuesAve Composit; title thisting of esycHscoRE:; proc print dataspsychscore noobs; sist; data pull; x 510) y = 20) 2 = -30; Abs2 = abs(z): ExpX = round (exp (x) , 001); Circumference = round (2*constant ("pi") *y, 001); pat calls s11- data fake; do Subj = 1 to 100, Af ranuni (12345) le .4 then Gender = ‘Fenale’; glee Gender = Male Age = int (ranuni(12345)#50 + 10) output; ena; title “First 10 observations of FAKE"; proc print data-fake (obs=10) ; saan daca convert get learn. char_num(rename= 576 Learning SAS by Example: A Programmer's Guide (age = chax_Age Weight = Char_Weight Zip = Num zip SS = Nonss)); Age = input (Char_age, 8.) ght = input (Char_Age,6.)7 (gun_ss, ssn]1) Zip = put (ium Zip,25-); le "Listing of CONCERT"; ea fh Pricel = lag (Pri Price2 = lag2(Pr average = mean(Price, Pricel, Price2); goptions reset-ail colors: symbol vedot Lines izsnooth; symbol? vesquare line=2 i=amo0 title "Plot of Price and Moving Average" proc gplot data-anooth; Average*Date / overlay; Chapter 12 Solutions 12-1; tone way to test the storage lengths is to use the LENGTH function chat returns storage lengths \e LENGTH function that returns © cer string, length AS 42 4; Solutions to Odd. Numbered Problems 877 cat = cate(a.s); Af Mame = 'Shith’ then Mateh = 'No'; else Match = "Yes"; Substring = substr (Name, 5,2); TA = Lengthe(al: EB = Lenethe(s) Name = lengthe (Name) ; LAands = lengthe(aands} cat = lengtac (cat) Match = Lengthe (Match) LSubstring = Lengthe (Substring) title ‘Lengths of Character Variables"; roe print data-storage noobs; var Lt ‘ALL Variables starting with LL; Variable Storage Length A 4 2 4 Name ° and, 8 cat 200 match 2 Substring 3 12-3; daca nanes_and nove, ‘get learn names_and more, Nane = comp! (ame) 7 Phone = compress (Phone, , kd") citle “Listing of Data Set LEARN.NAMES_AND_MORE*; proc print data-nanes_and.moze noobs; 12-5; data convert; set learn.names_and_pore (keep=Mixed) Integer = Input (scan (Mixed,1," /*),8.); Numerator = input (scan (Mixed,2," /"), 8.) Denominater = input (scan (Mixed,3," /*),8.); if missing{unerator) then Price = Integer; glee Price = Integer + Sumeracor / Denominacor; Grop Numerator Denominator integer; 578 Learning SAS by Example: A Programmer's Guide title "Listing of CONVERT"; proc print date=convert noobs; 12-7; ‘Using one of gata concat set learn, length Combined $3; Combined = catx(*~', Group, Subgroup) ; title ‘Listing of coNcAn; roe print data-concat noobs; swithout using CAT functions; data concat set learn, study (keep=Group Subgroup) Length Combined $3; Combined = trim(Grous) || '-* || put (Subgroup, 1.9; title thisting of coNcAD*; prot print data=coneat noobs; 12-9; data spirited; get learn. gales, waere find (Customer, piste! i): title "Listing of SPIRITED" proc print data=spirited noobs; saa-21 sitle ‘Subjects from SRRORS with Digits in the Name'; proc print datasleara.errors nocks; where anydigit (vane) var Subj Name; 12-13; daca exact withings get learn. eccial, AE SSI eg $82 then output exact; else if spedis(ssi,ss2) le 25 and Solutions to Odd. Numbered Problems 579 not missing(Ssi) and not migsing(Ss2) then out withinas;| sting of wxTHrwas* | nore (kee fengch AreaCode $ 27 hreacode = substy (Phone,2,3) ng of NUMBERS" 004 get learn personal (deo: substr(85,1,7) subscr (Ace title "Listing of PERSONAL {with masked values)"; int data=personal nochs, Chapter 13 Solutions sa3-1; array Ques(5) $ Q1-05; do i= ito 5 @ slate (ou! 54322 » end, 5380 Learning SAS by Example: A Programmer's Guide title ‘hist of SURVEYL (rescaled) "; proe print data=surveyl s13-3; data nonines: ‘set learn-nines: array nuna(*) numeric; Go i= 1 to ain(numa) Af mums(i) = 992 then call missing (nums(i)) ena; drop iy title thisting of NONINES"; proc print datasnonines: +1325; data passing: array pass_score(5) _temporary_ (55,70, 80, 52,68) array Score(S); imput ID: $3. 8: NunberPassed = 0; do Test = 1 te 5 NurberPassed + (Score(Test) ge pass. ena; Grop Test; Gatalines; o01 90 88 92 95 90 002 64 66. 77:72: 72 003 68 59 80.75 70 008 88 77-5 77 67 ssorel-seores title “Listing of PASSING"; proc print data=passing: id ips Solutions to Odd. Numbered Problems 581 Chapter 14 Solutions Chapter 15 Solutions “1 title "Tirst 5 Observacions from Bleed Data sec? proc report data=learn.blood{obs=5} nowa headline; column Subject WBC RBC; define Subject / display “subject Number* width=7; WBC / ‘White Blood Celle" widen=¢ format=connas.0 REC / "Rea Blood Cella mate5.2; 5382 Learning SAS by Example: A Programmer's Guide 15-3; title "Denonstrating a Compute Block"; proc report data-learn.hosp (obs=5) now headline; column Subject AdmicDate DOB Age; define AdnitDate / display *Adnission Date" width=10; Gedine boz / display; Gefine Subject / diaplay wide! Gefine Age / computed “Age at Adnigaion" ; compute Age; Age = round (yrdif(D0B, AdnicDate, 'Actual'}); endconp; quit: 15-5; title tpatient age Groups! proc report data-learn. bloodpressure nowd; colunn Gender Age AgeGroup; Gefine Gender 7 width=s. define Age / display wide! define AgeGroup / computed "Age Group"; compute AgeGroup / character lengt! AE Age gt 50 chen AgeGroup = "> 50"; else if not missing(Age) chen AgeGroup = endeomp; uit: s1s-7; title "Mean Cholesterol by Gender and Blood Type"; proc report data=learn.blood nowd headline ‘column Blood?ype Chol: Serine 7 group wide! Gefine Bloodtype / group "Blood Type" width=5 define Chol / analysis mean "Kean cholesterol" width=11 format quit: s18-9; sitle ‘Report on the suvey Data sett; proc report data-Tearn.aurvey nowd headline column 1D Age Gender Salary Quesi-quess AveResponse; define 1D / display width=4; define Age / display wide! Gefine Gender / display wide! define Salary / display widch-10 format-dollario.; Gefine Quesl / display noprinc; Solutions to Odd-Numbered Problems 583 gues2 define Ques’ Gefine Quesé / display nopri gue: / display noprint; ‘Tals solution will cause an automatic AveResponse = mean(of Quesi-guesS) endeomp; To avoid the automatic tne code below £ che aveResponse ft (guesl nput (Ques? , put (Ques3 /1.)7 nput (Ques’,1.) 7 = input (Quess/1.); AveResponse = mean(of 1-95) endcorp: define AveResponse / com sd "Average Response" wi Chapter 16 Solutions s16-1; 584 Learning SAS by Example: A Programmer's Guide var ClasaRank GPA, 16-3; proc sort data-learn.college out-college; by Schoolsize: title "statistics on the college bata set - Using BY"; citle2 "Broken down by School Size* proc means datascollese median maxde by Schoolsize; var ClassRank GPA;run; title “Statistics on the College Data set ~ Using CLASS"; title? “Broken down by School Size"; proc means data-learn. college median min class 5: var ClassRank GPA; “16-5; proc format value rank 0-50 = ‘Bottom Half! S174 = ‘Third quartiles 75-100 = ‘Top Quarter"; sitle ‘Statistica on the College bata set"; titie2 *Broken down by School Size* proc means data=learn.college class Clasexank var GPA? format ClageRank rank. ; Solutions to Odd-Numbered Problems 588 v6 proc mean data-learn.college noprint chartype: class Gender Schoolsize; var ClassRank GPA; at outesunmary grand (drop= size) bygender (arop=Schoo1size) byaize (drop=sende GRAND"; datasgrand nooks bygender noobs; ag of BI TZE* datashysize noobs; Chapter 17 Solutions title "One-way Prequencie: roe freq dat ‘a.blood, tables Gender Blocdlype AgeGroup / nocum nopercent; 586 Learning SAS by Example: A Programmer's Guide e2 "Wi proc freq da tables title "Demonstrating the MISSING option*; 22 ‘With MISSING Option" oc freq dataslearn blood; tables Chel / nocun missing; format Chol cholaxp va7-5; value rank Lo ow to 70 “high = ‘71 and higher format ClagsRane sare; title "Blood Types in Decreasing Frequency order" proc freq datalearn.blood order=trea: tables Bloodtype / nocum nopercent; Chapter 18 Solutions s1a-1; options fm earn) ; fe "Demographics from COLLEGE Data set"; tabulate datanle ‘lege format=5.; lass Gender Scholarship Schoolsize; tables Genders: all Solutions to Odd. Numbered Problems 587 keylabel ne! '; 18-3; proc format; value {gender 'F* = ‘Fenale’ we = oMale’; title "Denographics from COLLEGE Data set"; proc tabulate datazlearn.college forma class Gender Scholarship SchoolSize; tables (Gender all) (Scholarship all), Schoolsize all / =ts=25; keylabel nz! ALL = ‘focal’ format Gender ¢gence 18-5; title "Descriptive stavistics*; proc tabulate datazlearn.college fozmat=6.1; class Gender; var GPA, fables GPAt (ats<4 ean min max) Gender all; keylabel n= 'Nunber" all = ‘Total’ s18-7; title "Nore Descriptive statistics" proc tabulate dataslearn.college formate7.1 noseps; class Gender Schoolsize; var GPA ClassRank; tables Schoolsize all, GBAY (median min max) ClassRank* (median keylabel all = ‘Terai’ negian = ‘Median’ rin = 'inimum max = ‘Maximum’; label ClassRank = ‘Class Rank! Schoolsize ~ ‘Senocl size! maxtf=7.)/ ree=15 588 Learning SAS by Example: A Programmer's Guide 18-9; title’ "Denonstrating Colum Percents"; © value Seende: lass Gender Scholarsnip, cables format Gender $gender.: Chapter 19 Solutions si9-t; ons fmtsearch= (lea! listing close; i file = '¢:\bocks\learning\e fe "Sending 0 ol Lege (ob: proc means dataslearn.college n mean maxd var GPA Classxank: eas eds listing close; *19-3; ods lis ods Solutions to Odd-Numbered Problems 589 “var GPA Classlank; lege n mean maxdec=2; goptions reset-all earn. bicycles quit: *20-3; ibution of sales*; n value-aolia 590 Learning SAS by Example: A Programmer's Guide 12000 by 2000 sales by Mo proc gchart & yar Country / subgroup = Model; "20-7; ons fmtsearch= (learn); /* che learn library ¢:\books\learning 2 where the formate for COLLEGE are kept pattern value = empty: citle ‘Ave: \ge GPA by Size of Scho: proc gchart data=learn.college, vbar SchoolSize / sunvar = GPA type = mean; 120-8 title “stock Prices by Time*; symbol valuedot izsm; prec gplot data=learn. stocks: Chapter 21 Solutions saat; a probe1_ Solutions to Odd. Numbered Problems 591 title thisting of PROB21_1* proc print data=probal_i noobs; e213; data prob2i_3; indile '2:\books\te: input Scorel 1-2 Score? 1-6 Scores dng\sccres_colunn. txt! pad; title "Listing of PRoa21! proc print Gata-pron2l_? nochay waa-s; title ‘sunnary Report from BICYCLES Data set"; data prob21_s; get learn-bicycles end=lastrec; Docalunice + unicey Sum_of_Sales + TotalSales; file print; Sf lagtrec chen put *Potal Units Sold is * TotalUaits conmalo. / "sales Total is * Sun_o¢_sales dollarid.0; sant; data prob2i_t; indile '2:\books\e: ing\fileA.txt* Af last_of_a then Infile ‘c:\books\learning\file_B.cxt' Fivscobs=2; input x y 2: title tListing of PROB2i_7* roe print data-probal_7 121-9; data prob21_9; filenane xyzfiles ('c: \books\le: te: \books \1e: infile xyzfiles, input x y 27 592. Learning SAS by Example: A Programmer's Guide title "Listing of PRoB2is ob2i_s inZile ‘2: \books \learning\three_ver, G1 (HRI-HRS) (3. +8) ee BPS} (3. +8) 27 (DBPL-DBPS) (3. +6); Chapter 22 Solutions saat; value high_sbp low - <140 = ‘Normal’ 140 - high = “High sB2*; value high dbp low - <20 = 90 - hi title ‘Frequencies on SBP and DBP"; roe req data-learn bloodpressure; tables SBP DBP / nocum nopercent format SBP high_sbp DBP 122-3; value high sbp Tow - <140 = ‘Normal’ 149 ~ Aigh = ‘High spe; value high_@bp low - <90 = ‘Normal’ loode: Group = put (SBP/high_sbp.) put (DBP, high dep.) Solutions to Odd. Numbered Problems 593 title "Listing of BLOODPRESSURE'; proc print date-blocdpressure noobs: 22-5; proc format: invalue Sconvert oes Et 66 - 75 = 1c 16 - 65 = 1B 85 - high other = | gata lettergrades; Intile ‘c:\books\learning\nungrades.cxt' input ID $ LecterGrade Seonvert. 00; title “Listing of LEPTERGRADES*; proc print data-lettergrades nocbey soa-7; data control; et learn-dxcodes (rename=(Dx = Start Description = Label)}; retain fmtnane 'Sdxcodes’ Type °C"; proc Zommat entlinscontrol, select Sdxcodes, 122-9; proc format value muggle ‘oLjani990'd = '31dec2006"a = ‘Too Barly! o2jan2005'd - ‘3idec2005¢d = (mmadyyi0.] 02jan2007'd - high = ‘Too Late’; title "Listing of Gym"; proc print data=learn.gym noob: format Date muggle. ; 594 Learning SAS by Example: A Programmer's Guide Chapter 23 Solutions Solutions to Odd. Numbered Problems 598 title ‘histing of LasT?RrcH* proe print data=lastprice noobs, 20-3; proc sort data-learn.dailyprices by Symbol Date aca countit set dailyprices; by syrbol; Af first. Symbol then N_Days Nays + 1; 42 last symbol; keep Symbol N_Days, jaityprices: title "Listing of commit; proc print data=countit noobs; 28-5; proc sort data-learn.dailyprices ow by Symbol Date; daca firet_ia set dailyprices; hy Symbol; retain FirstPrice; Sf iret. Symbol and las<.symbol then delete Af firet Symbol then FirstPrice = Price Af lagt.Symbol then do; Dif! = Price ~ F: outpes, ena; keep Synbol Price Diff; jailyprices: title ‘Listing of FIRS?_Las?*; proc print data=first_last noobs; 126.7; proc sort data=learn.dailyprices ou! by Synbol Date; data Sizet_lass, set dailyprices, by Symbol Sf firet.Symbol and last.Symbol then delete; 596 Learning SAS by Example: A Programmer's Guide pitt = ait(2rice) £ not first.symbol then out keep Symbol Price Diff; "LAS?* ; first_last noobs; Chapter 25 Solutions 25-1; title “Listing produced on ksysday, ksysdave? at ksystine"; proe print data=learn.atecks{obs=5) noobs; (+ noms Of the fis of observations Gnobs observations from * proe print datastdan (ob: mend 8: unobs) noobs ay earn. fitness nway 1 RestPulse MaxPulse; / autonane: pull; summary; call symput ("6 call symput ('GrandRest' /RestPulse_mean) ; call gymput (‘GrandMax' ,MaxPulse_mean) : randPine' ,Mimemile_mean} ; PMimeMile = round(100*7imemsle/scrangrine) ; Solutions to Odd. Numbered Problems 597 00*ReatPulee/agrandneat| Chapter 26 Solutions 106 Cle ‘observations from INVENTORY where Price > 20° ice gt 20; create table nsales a select Name, Totalsales from Lear waere Region eq ‘North’ Weight r.Sub! as Rightsubl, 598 Learning SAS by Example: A Programmer's Guide title thisting of BOTH proe print datasboth noobs; /* alternate code proe eal; creace cable hoch as select 1.Subj as Lectsubj Height Weight r.Subj as Rightsubj, salary from learn. left as 1, learn right as = waere left Subj = right subj eit title *histing of BOTH prot print data=both noobs; werpare 2) proc eal; creace table Hoth as select 1-Sub! as Leftsubj Height Weight = .Sub! as Rightsuhi, salary from learn.left az 1 full join Learn right as on left Subj = righ quit title “Listing of BoTHt proc print datasboth noobs; veepare 3; roe eal create table both as select 1.Subj as Leftsubj Height Weight, r.Subj as Rightsubj, salary from learn. left as 1 left join Solutions to Odd. Numbered Problems 599 learn.right as = on Left.Subj = right. subj; uit: title "Listing of LEFT proc print datasboth necks; 126-7; proe sal; create table third a select * from learn, first union all corresponding Select * from learn. second; eit title ‘Listing of THIRD"; proc print data-third; *26-9; proc eal; create Cable percentages as gelect Subject, RBC, pc, mean (RBC) as Meankec, mean(WBC) as MeaniEC, 100*REC / calculated Meank#C as Percent_Ruc, Losec / calculated Meanh2C az 2ercent wae from learn.blsed(obs=10) quit title "Listing of PERCENTAGES"; proc print dataspercentages

You might also like