C5 ==== (fig5.4)(tmill.dat) 1---+----10---+----20---+----30---+----40---+- 2458 Murray, W 72 185 128 12 38 D 2462 Almers, C 68 171 133 10 5 I 2501 Bonaventure, T 78 177 139 11 13 I 2523 Johnson, R 69 162 114 9 42 S 2539 LaMance, K 75 168 141 11 46 D 2544 Jones, M 79 187 136 12 26 N 2552 Reberson, P 69 158 139 15 41 D 2555 King, E 70 167 122 13 13 I C12 ==== (fig12.1) data a; input num varA$;cards; 1 A1 3 A2 5 A3 data b; input num varB$; cards; 2 B1 4 B2 (fig12.4) data patients; input ID $ 1-4 Sex $ 6 Age 8-9; datalines; 1129 F 48 1837 F 57 2304 F 16 2486 F 63 4759 F 60 5438 F 42 6488 F 59 9012 F 39 9125 F 56 ; data measure; input ID $ 1-4 Height 6-7 Weight 9-11; datalines; 1129 61 137 1387 64 142 2304 61 102 5438 62 168 6488 64 154 9012 63 157 ; (fig12.6) data a; input num varA$;cards; 1 A1 2 A2 3 A3 ; data c; input num varB$;cards; 1 B1 2 B2 4 B3 ; (fig12.7) sasuser data therapy1999; input Month $ 1-2 Year 10-13 AerClass 20-21 WalkJogRun 29-31 Swim 37-38; datalines; 01 1999 26 78 14 02 1999 32 109 19 03 1999 15 106 22 04 1999 47 115 24 05 1999 95 121 31 06 1999 61 114 67 07 1999 67 102 72 08 1999 24 76 77 09 1999 78 77 54 10 1999 81 62 47 11 1999 84 31 52 12 1999 92 44 55 ; data therapy2000; input Month $ 1-2 Year 10-13 AerClass 20-21 WalkJogRun 29-31 Swim 37-38; datalines; 01 2000 37 91 83 02 2000 41 102 27 03 2000 52 98 19 04 2000 61 118 22 05 2000 49 88 29 06 2000 24 101 54 07 2000 45 91 69 08 2000 63 65 53 09 2000 60 49 68 10 2000 78 70 41 11 2000 82 44 58 12 2000 93 57 47 ; (fig12.8) data a; input num sex$;cards; 1 M 2 F 3 F 4 M ; data b; input num sex$; cards; 3 F 4 F 5 F 6 M ; (fig12.10) data patients; input num sex$;cards; 1 M 2 F 3 F 4 M ; data append; input num sex$ state$; cards; 5 Male NC 6 Female TX 7 Female MA 8 Male NC ; (fig12.11) data c; input num var; cards; 1 C1 2 C2 2 C3 3 C4 ; data d; input num var; cards; 2 D1 3 D2 3 D3 ; (fig12.13) data a; input num varA$;cards; 1 A1 2 A2 3 A3 data b; input num varB$; cards; 1 B1 2 B2 4 B3 ; (fig12.14) data table1; input year varX$; cards; 1991 X1 1992 X2 1993 X3 1994 X4 1995 X5 ; data table2; input year varY$; cards; 1991 Y1 1991 Y2 1993 Y3 1994 Y4 1995 Y5 ; (fig12.15) data demog; input id $ age sex$ 12-12 date; informat date mmddyy.; format date mmddyy.; cards; A001 21 m 05/22/75 A002 32 m 06/15/63 A003 24 f 08/17/72 A004 . 03/27/69 A005 44 f 02/24/52 A007 39 m 11/11/57 data visit; input id$ visit SysBP DiasBP Weight Date; informat date mmddyy.; format date mmddyy.; cards; A001 1 140 85 195 07/04/98 A001 2 138 90 198 10/13/98 A001 3 145 95 200 11/05/98 A002 1 121 75 168 04/14/98 A003 1 118 68 125 08/12/98 A003 2 112 65 123 08/21/98 A004 1 143 88 204 03/30/98 A005 1 132 78 174 02/27/98 A005 2 132 78 175 07/11/98 A005 3 134 78 176 04/16/98 A008 1 128 80 182 05/23/98 ; (fig12.19) data clients; input name $ 12. empid; cards; ANKERTON, L. 11123 DAVIS, R. 22298 MASTERS, T. 33351 WOLMER, B. 44483 ;run; data amounts; input name $ 12. date:date7. amt; format date date7.; cards; ANKERTON, L. 08OCT96 92 ANKERTON, L. 15OCT96 43 DAVIS, R. 04OCT96 16 MASTERS, T. 13OCT96 18 MASTERS, T. . 27 THOMAS, A. 21OCT96 15 ;run; data a; input id name $ 3-17; cards; 1 Nay Rong 2 Kelly Windsor 3 Julio Meraz 4 Richard Krabill ; data b; input id sale:dollar.; cards; 1 $28,000 2 $30,000 2 $40,000 3 $15,000 3 $20,000 3 $25,000 4 $35,000 ; data c; input ID Bonus:dollar.; cards; 1 $2,000 2 $4,000 3 $3,000 4 $2,500 ;run; data temp; merge a b c; by id; run; * C16; * Records Formats(Reading Variable-Length Records); infile receipts pas; input dept $ 1-11 @13 receipts comma8.; 1---+----10---+----20 BED/BATH 1,354.93 HOUSEWARES 2,464.05 GARDEN 923.34 GRILL 598.34 SHOES 1,345.82 SPORTS TOYS 6,536.53 (fig17.10) Raw Data File Credit 1---+----10---+----20 MALE,27,1,8,0,0 FEMALE,29,3,14,5,10 FEMALE,34,2,10,3,3 MALE,35,2,12,4,8 FEMALE,36,4,16,3,7 MALE,21,1,5,0,0 MALE,25,2,9,2,1 FEMALE,21,1,4,2,6 MALE,38,3,11,4,3 FEMALE,30,3,5,1,0 (fig17.17) data creditsurvey 1---+----10---+----20 MALE 27 1 8 0 0 FEMALE 29 3 14 5 10 FEMALE 34 2 10 MALE 35 2 12 4 8 FEMALE 36 4 16 3 7 MALE 21 1 5 0 0 MALE 25 2 9 2 1 FEMALE 21 1 4 2 6 MALE 38 3 11 4 3 FEMALE 30 3 5 1 0 (fig17.23) ,27,1,8,0,0 FEMALE,29,3,14,5,10 FEMALE,34,2,10,3,3 MALE,35,2,12,4,8 FEMALE,36,4,16,3,7 MALE,21,1,5,0,0 MALE,25,2,9,2,1 FEMALE,21,1,4,2,6 MALE,38,3,11,4,3 FEMALE,30,3,5,1,0 (fig17.24) citydata.dat 1---+----10---+----20---+---- ANCHORAGE 48081 174431 ATLANTA 495039 425022 BOSTON 641071 562994 CHARLOTTE 241420 314447 CHICAGO 3369357 3005072 DALLAS 844401 904078 DENVER 514678 492365 DETROIT 1514063 1203339 MIAMI 334859 346865 PHILADELPHIA 1949996 1688210 SACRAMENTO 257105 275741 (fig17.30) topten.dat rank city pop86; 1---+----10---+----20---+-- 1 NEW YORK 7,262,700 2 LOS ANGELES 3,259,340 3 CHICAGO 3,009,530 4 HOUSTON 1,728,910 5 PHILADELPHIA 1,642,900 6 DETROIT 1,086,220 7 SAN DIEGO 1,015,190 8 DALLAS 1,003,520 9 SAN ANTONIO 914,350 10 PHOENIX 894,070 (fig17.40) findat.dat ssn name salary date; 1---+----10---+----20---+----30---+----40 074-53-9892 Vincent 35000 22MAY1997 776-84-5391 Phillipon 29750 15DEC1996 929-75-0218 Gunter 27500 30APR1997 446-93-2122 Harbinger 33900 08JUL1996 228-88-9649 Benito 28000 04MAR1996 029-46-9261 Rudelich 35000 15FEB1995 442-21-8075 Sirignano 5000 22NOV1995 (fig17.42) findat2.dat ssn name salary date; 1---+----10---+----20---+----30---+----40 074-53-9892,Vincent,35,000,22MAY1997 776-84-5391,Phillipon,29,750,15DEC1996 929-75-0218,Gunter,27,500,30APR1997 446-93-2122,Harbinger,33,900,08JUL1996 228-88-9649,Benito,28,000,04MAR1996 029-46-9261,Rudelich,35,000,15FEB1995 442-21-8075,Sirignano,5,000,22NOV1995 (fig17.45) findat2.dat ssn name salary date; 1---+----10---+----20---+----30---+----40 074-53-9892,Vincent,"35,000",22MAY1997 776-84-5391,Phillipon,"29,750",15DEC1996 929-75-0218,Gunter,"27,500",30APR1997 446-93-2122,Harbinger,"33,900",08JUL1996 228-88-9649,Benito,"28,000",04MAR1996 029-46-9261,Rudelich,"35,000",15FEB1995 442-21-8075,Sirignano,"5,000",22NOV1995 (fig17.48) rawdata.dat 1---+----10---+----20---+----30---+----40- 209-20-3721 07JAN78 41,983 SALES 2896 223-96-8933 03MAY86 27,356 EDUCATION 2344 232-18-3485 17AUG81 33,167 MARKETING 2674 251-25-9392 08SEP84 34,033 RESEARCH 2956 (fig17.54) teamdat.dat 1---+----10---+----20---+----30---+----40- Joe 87 Blue Beetles, Durham Dani 79 Raleigh Racers, Raleigh Lisa 85 Sand Sharks, Cary Matthew 76 Blue Beetles, Durham [pr17.5] 1---+----10---+----20---+----30---+----40- ORANGE SUNNYDALE 20 10 PINEAPPLE ALOHA 7 10 GRAPE FARMFRESH 3 APPLE FARMFRESH 16 5 GRAPEFRUIT SUNNYDALE 12 8 * C18; (fig19.1) 1---+----10---+----20---+----30---+----40- ABRAMS THOMAS MARKETING SR01 $25,209.03 BARCLAY ROBERT EDUCATION IN01 $24,435.71 COURTNEY MARK PUBLICATIONS TW01 $24,006.16 (table19.2 Raw data file Admit) 1---+----10---+---- S. Thompson 37 M L. Rochester 31 F M. Sabatello 43 M (fig19.3=19.2->19.1) (fig19.4, fig19.5, fig19.6, fig19.7 fig19.18 fig19.19) 1---+----10---+----20 LEE ATHNOS 1215 RAINTREE CIRCLE PHOENIX AZ 85044 HEIDIE BAKER 1751 DIEHL ROAD VIENNA VA 22124 MYRON BARKER 131 DONERAIL DRIVE ATLANTA GA 30363 JOYCE BENEFIT 85 MAPLE AVENUE MENLO PARK CA 94025 (fig19.20=fig19.1) (fig19.21-fig19.38) 1---+----10---+----20--- ALEX BEDWAN 609 WILTON MEADOW DRIVE GARNER NC 27529 XM034 FLOYD ALISON BEYER 8521 HOLLY SPRINGS ROAD APEX NC 27502 XF124 LAWSON * C20; (fig20.10) (tempdata.txt) 01APR90 68 02APR90 67 03APR90 70 04APR90 74 05APR90 72 06APR90 73 07APR90 71 08APR90 75 09APR90 76 /* Reading the Same Number of Repeating Fields */ (fig20.24) (Data97.txt) id$ sales(qtr1-4) 0734 1,323.34 2,472.85 3,276.65 5,345.52 0943 1,908.34 2,560.38 3,472.09 5,290.86 1009 2,934.12 3,308.41 4,176.18 7,581.81 1043 1,295.38 5,980.28 8,876.84 6,345.94 1190 2,189.84 5,023.57 2,794.67 4,243.35 1382 3,456.34 2,065.83 3,139.08 6,503.49 1734 2,345.83 3,423.32 1,034.43 1,942.28 filename myfile 'g:\y\sascert\data97.txt'; data temp; infile myfile; input id $4. @; do quarter=1 to 4; input sales: comma. @; output; end; run; proc print ;run; /* Reading a Varying Number of Repeating Fields */ (fig20.36) (Data97.txt) id $ sales(quarter1-4) 1---+----10---+----20---+----30---+----40 1824 1,323.34 2,472.85 1943 1,908.34 2046 1,423.52 1,673.46 3,276.65 2063 2,345.34 2,452.45 3,523.52 2,983.01 data temp; infile myfile missover; input id $4. sales:comma. @; quarter=0; do while(sales ne .); quarter+1; output; input sales:comma. @; end; run; c21:Hierarchical files (fig21.) type id date amount 1---+----10---+----20 P 1095 C 01-08-89 $45.0 C 01-17-89 $37.5 P 1096 C 01-09-89 $156.5 P 1097 C 01-02-89 $109.0 P 1099 C 01-03-89 $45.0 C 01-05-89 $45.0 P 1201 C 01-05-89 $37.0 C 01-10-89 $45.0 (output1) Obs ID Date Amount 1 1095 01/08/89 $45.00 2 1095 01/17/89 $37.50 3 1096 01/09/89 $156.50 4 1097 01/02/89 $109.00 5 1099 01/03/89 $45.00 6 1099 01/05/89 $45.00 7 1201 01/05/89 $37.00 8 1201 01/10/89 $45.00 (output2) Obs ID Total 1 1095 $82.50 2 1096 $156.50 3 1097 $109.00 4 1099 $90.00 5 1201 $82.00 [Creating One Observation per Detailed Record] (fig21.*) 1---+----10---+----20 H 321 S. MAIN ST P MARY E 21 F P WILLIAM M 23 M P SUSAN K 3 F H 324 S. MAIN ST P THOMAS H 79 M P WALTER S 46 M P ALICE A 42 F P MARYANN A 20 F P JOHN S 16 M H 325A S. MAIN ST P JAMES L 34 M P LIZA A 31 F H 325B S. MAIN ST P MARGO K 27 F P WILLIAM R 27 M P ROBERT W 1 M data temp; infile myfile; retain address; input type $1. @; if type='H' then input @3 address $15. @; if type='P'; input @3 name $9. @13 age 2. @16 gender $1.; run; [Creating One Observation per Header Record] data temp; infile myfile end=last; input type $1. @; retain address; if type='H' then do; if _n_>1 then output; total=0; input address $ 3-17; end; else if type='P' then total+1; if last then output; run; 1---+----10---+----20 H 321 S. MAIN ST P MARY E 21 F P WILLIAM M 23 M P SUSAN K 3 F H 324 S. MAIN ST P THOMAS H 79 M P WALTER S 46 M P ALICE A 42 F P MARYANN A 20 F P JOHN S 16 M H 325A S. MAIN ST P JAMES L 34 M P LIZA A 31 F H 325B S. MAIN ST P MARGO K 27 F P WILLIAM R 27 M P ROBERT W 1 M (fig.)