1 The SAS System 15:04 Monday, January 7, 2002 NOTE: Copyright (c) 1999-2001 by SAS Institute Inc., Cary, NC, USA. NOTE: SAS (r) Proprietary Software Release 8.2 (TS2M0) Licensed to UNIVERSITY OF MISSOURI AT COLUMBIA-CAMPUSWIDE-T/R, Site 0001242001. NOTE: This session is executing on the AIX 4.3 platform. This message is contained in the SAS news file, and is presented upon initialization. Edit the files "news" in the "misc/base" directory to display site-specific news and information in the program log. The command line option "-nonews" will prevent this display. NOTE: SAS initialization used: real time 0.36 seconds cpu time 0.05 seconds NOTE: AUTOEXEC processing beginning; file is /home/john/autoexec.sas. v8= 1 ***** ****** MSCDC autoexec rev for V8 01-21-2000 - begin execution ******* Standard filerefs and librefs assigned ***** NOTE: Libref PL942000 was successfully assigned as follows: Engine: V8 Physical Name: /pub/data/pl942000 NOTE: Libref PL9490TX was successfully assigned as follows: Engine: V8 Physical Name: /pub/data/pl9490/pl9490tx NOTE: Libref POPESTS was successfully assigned as follows: Engine: V8 Physical Name: /pub/data/popests NOTE: Libref STF903X was successfully assigned as follows: Engine: V8 Physical Name: /pub/data/stf903x ****Finished with generic autoexec **** *** ****Excuting my private autoexec.sas file, rev. 12May2001 WARNING: Libname LIBRARY is not assigned. NOTE: Libname LIBRARY refers to the same physical library as SASCTLGS. NOTE: Libref LIBRARY was successfully assigned as follows: Engine: V8 Physical Name: /pub/sasctlgs WARNING: No logical assign for filename RLINK. ***** dmsflag= NODMS dmchk execution begins *** **Begin execution on Monday 07JAN02 at 15:04 PID=20824 NOTE: Libref SF1 was successfully assigned as follows: Engine: V8 Physical Name: /pub/data/sf12000 NOTE: Libref SF1X was successfully assigned as follows: Engine: V8 2 The SAS System 15:04 Monday, January 7, 2002 Physical Name: /pub/data/sf12000x NOTE: Libref INDCTRS was successfully assigned as follows: Engine: V8 Physical Name: /pub/data/indctrs NOTE: AUTOEXEC processing completed. 1 x cd /pub/data/sf12000/Tools 1 ! ; %let pgm=aggsf1_moslds02; filename pgm "&pgm..sas"; 2 3 /*----------------------------------------------------------------------------------------------------------------- 4 This code aggregates sf12000 data to Missouri SLDs - State Legislative Districts, AS DEFINED AFTER REDISTRICTING. 5 I.e., that go into effect in 2002 (or late 2001 but the first elections effected are in 2002). 6 We use the block to district correlation files obtained from Ryan Burson and processed by the molegdists2002.sas 7 module in corrlst/Tools. 8 9 Creates the SAS datasets: 10 11 sf1.mosenate02ph: Missouri state senate districts - P and H tables. 12 sf1.mosenate02pct: Missouri state senate districts - PCT tables 13 14 sf1.mohouse02ph: Missouri state house districts - P and H tables. 15 sf1.mohouse02pct: Missouri state house districts - PCT tables 16 17 sf1.mocd108ph: Missouri 108th Cong. districts - P and H tables. 18 sf1.mocd108pct: Missouri 108th Cong. districts - PCT tables 19 20 Coded by John Blodgett, OSEDA, U. of Missouri, blodgettj@umsystem.edu 21 Under contract with the Missouri Census Data Center 22 23 Revision History: 24 12.31.01: Coding begins. Modeling after aggsf1_moslds.sas 25 01.07.02: Fixing problem with geocode var on the 3 ph sets. 26 ------------------------------------------------------------------------------------------------------*/ 27 28 libname sf1 '/pub/data/sf12000'; NOTE: Libref SF1 was successfully assigned as follows: Engine: V8 Physical Name: /pub/data/sf12000 29 *libname corrlst '/pub/data/corrlst' access=readonly; 30 *<---We create the file georef.moblks00 to combine info from various sources, including all the correlation 31 lists we originally were going to have to access.--; 32 %libname(georef); NOTE: Libref GEOREF was successfully assigned as follows: Engine: V8 Physical Name: /pub/data/georef 33 libname user '/tmp/scratch/user'; NOTE: Libref USER was successfully assigned as follows: Engine: V8 Physical Name: /tmp/scratch/user 33 ! *<===Optional. Permissions on this directory limit who can use it; 34 35 title 'sf12000 Aggregation Run: To Missouri State Legislative Districts After Redistricting: aggsf1_moslds02'; 36 options msglevel=i fullstimer; 37 38 3 The SAS System 15:04 Monday, January 7, 2002 39 %macro atoI(list,x); 40 %*--utility macro to take a list of variables containing a wild card character ("x", by defaut) and replacing it with 40 ! the letters 41 a, b, c, d, e, f, g, h, and I in order. To generate the lists used in sf1 for the race/hispanic tables.--; 42 %if &x eq %then %let x=x; %*--default wild card character is "x"--; 43 %sysfunc(translate(&list,a,&x)) 44 %sysfunc(translate(&list,b,&x)) 45 %sysfunc(translate(&list,c,&x)) 46 %sysfunc(translate(&list,d,&x)) 47 %sysfunc(translate(&list,e,&x)) 48 %sysfunc(translate(&list,f,&x)) 49 %sysfunc(translate(&list,g,&x)) 50 %sysfunc(translate(&list,h,&x)) 51 %sysfunc(translate(&list,I,&x)) 52 %mend atoI; 53 54 %let geos80=county cousubfp placefp tract; *<--geocode making up summary level 080---; 55 56 data agginsf1(compress=yes); 57 length sumlev $3 sldcode $3; 58 set sf1.moph; where sumlev='101'; 59 geo_id_sf1=geo_id; 60 set georef.moblks00(keep=geo_id_sf1 sldu02 sldl02 cd108) key=geo_id_sf1; 61 if _error_ then do; 62 _nerr+1; if _nerr le 20 then put _all_; 63 else if _nerr gt 100 then abort abend; 64 _error_=0; 65 end; drop _nerr; 66 67 *---Output once for each district type--; 68 keep sumlev sldcode _numeric_; 69 sumlev='610'; sldcode=sldu02; output; 70 sumlev='620'; sldcode=sldl02; output; 71 sumlev='500'; sldcode=cd108; output; 72 run; NOTE: There were 241532 observations read from the data set SF1.MOGEOS. WHERE SumLev='101'; NOTE: There were 267290 observations read from the data set SF1.MOPHNG. NOTE: There were 241532 observations read from the data set SF1.MOPH. WHERE sumlev='101'; NOTE: The data set USER.AGGINSF1 has 724596 observations and 3074 variables. NOTE: Compressing data set USER.AGGINSF1 decreased size by 91.14 percent. Compressed is 16044 pages; un-compressed would require 181155 pages. NOTE: DATA statement used: real time 52:15.03 user cpu time 12:52.65 system cpu time 14.70 seconds Memory 10298k Page Faults 7708 Page Reclaims 23440 Page Swaps 0 Voluntary Context Switches 44 Involuntary Context Switches 107322 4 The SAS System 15:04 Monday, January 7, 2002 73 74 proc datasets library=user; -----Directory----- Libref: USER Engine: V8 Physical Name: /tmp/scratch/user File Name: /tmp/scratch/user Inode Number: 6144 Access Permission: rwxrwxr-x Owner Name: john File Size (bytes): 17920 # Name Memtype File Size Last Modified ------------------------------------------------------ 1 AGGIN DATA 574693376 07JAN2002:09:21:33 AGGIN INDEX 6520832 07JAN2002:09:21:33 2 AGGINSF1 DATA 1051467776 07JAN2002:15:56:52 3 AGGOUT DATA 3481600 07JAN2002:09:30:50 74 ! *<--agginsf1 may be too big to sort, so we just create an index for it-; 75 modify agginsf1; 76 index create geos=(sumlev sldcode); NOTE: Composite index geos has been defined. 77 quit; NOTE: PROCEDURE DATASETS used: real time 3:05.55 user cpu time 9.22 seconds system cpu time 0.99 seconds Memory 14836k Page Faults 16556 Page Reclaims 27675 Page Swaps 0 Voluntary Context Switches 2 Involuntary Context Switches 1833 78 79 options compress=yes; *<---to get the aggregated output set to be compressed--; 80 81 %agg(aggin=agginsf1,aggout=aggoutsf1, 82 aggby=sumlev sldcode, 83 aggvars=pop100 hu100 p1i1--h16Ii19 IntPtLon IntPtLat AreaSQMI, 84 naggvars=3065, 85 means= IntPtLon IntPtLat p17i1 p33i1 p17ai1 p17bi1 p17ci1 p17di1 p17ei1 p17fi1 p17gi1 p17hi1 p17Ii1 86 p33ai1 p33bi1 p33ci1 p33di1 p33ei1 p33fi1 p33gi1 p33hi1 p33Ii1 87 h12i1 h12i2 h12i3 88 %atoI(h12xi1 h12xi2 h12xi3) , 89 mweights=p1i1 p1i1 p15i1 p31i1 p15ai1 p15bi1 p15ci1 p15di1 p15ei1 p15fi1 p15gi1 p15hi1 p15Ii1 90 p31ai1 p31bi1 p31ci1 p31di1 p31ei1 p31fi1 p31gi1 p31hi1 p31Ii1 91 h4i1 h4i2 h4i3 92 %atoI(h15xi1 h15xi2 h15xi10) , 93 debug=1, 94 agglvls=1) 5 The SAS System 15:04 Monday, January 7, 2002 *************************************************************** * AGG MACRO REV 14May99 BEGIN EXECUTION * * MISSOURI STATE CENSUS DATA CENTER * *************************************************************** *****PARAMETERS SPECIFIED***** (NAMES IN PARENTHESES ARE ALIASES) SETIN(AGGIN)= agginsf1 (INPUT DATA SET) SETOUT(AGGOUT)= aggoutsf1 (OUTPUT DATA SET) AGGBY(BYVARS)= sumlev sldcode (AGGREGATION BY VARIABLES) AGGLVL(AGGLVLS)= 1 (NUMBER OF LEVELS OF AGGREGATION) AGGVARS(VARS)= POP100 HU100 P1I1--H16II19 INTPTLON INTPTLAT AREASQMI (VARIABLES ON SETIN TO AGGREGATE) NAGGVARS= 3065 (NUMBER OF VARIABLES IN AGGVARS LIST) NUMS= (NUMERATOR VARIABLES) DENOMS(DENS)= (LIST OF DENOMINATORS) MEANS(MEDIANS)= IntPtLon IntPtLat p17i1 p33i1 p17ai1 p17bi1 p17ci1 p17di1 p17ei1 p17fi1 p17gi1 p17hi1 p17Ii1 p33ai1 p33bi1 p33ci1 p33di1 p33ei1 p33fi1 p33gi1 p33hi1 p33Ii1 h12i1 h12i2 h12i3 h12ai1 h12ai2 h12ai3 h12bi1 h12bi2 h12bi3 h12ci1 h12ci2 h12ci3 h12di1 h12di2 h12di3 h12ei1 h12ei2 h12ei3 h12fi1 h12fi2 h12fi3 h12gi1 h12gi2 h12gi3 h12hi1 h12hi2 h12hi3 h12Ii1 h12Ii2 h12Ii3 (MEAN/MEDIAN VARS TO BE AGGREGATED) MWEIGHTS= p1i1 p1i1 p15i1 p31i1 p15ai1 p15bi1 p15ci1 p15di1 p15ei1 p15fi1 p15gi1 p15hi1 p15Ii1 p31ai1 p31bi1 p31ci1 p31di1 p31ei1 p31fi1 p31gi1 p31hi1 p31Ii1 h4i1 h4i2 h4i3 h15ai1 h15ai2 h15ai10 h15bi1 h15bi2 h15bi10 h15ci1 h15ci2 h15ci10 h15di1 h15di2 h15di10 h15ei1 h15ei2 h15ei10 h15fi1 h15fi2 h15fi10 h15gi1 h15gi2 h15gi10 h15hi1 h15hi2 h15hi10 h15Ii1 h15Ii2 h15Ii10 (LIST OF WEIGHT VARIABLES FOR MEANS) SLCTEDIT(FILTER)= (SELECT/EDIT USER-EXIT MACRO NAME) IDVARS(IDS)= (ID VARIABLES TO KEEP ON AGGOUT) GRAND= 0 (GRAND TOTALS OPTION) FILLBY= (FILLER CHARACTER FOR AGGBY VARIABLES) NODUPS= 0 (OPTION TO OMIT REDUNDANT HIGHER LEVEL SUMS) ***END PARM LIST*** AGGBY1= sldcode AGGBY2= sumlev ****PARM VERIFICATION PHASE COMPLETE**** ****WARNING: VARIABLES APPEARING IN NUMS, DENOMS OR MWEIGHTS LISTS WILL NOT BE AGGREGATED UNLESS THEY ALSO APPEAR IN THE AGGVARS LIST. USE THE DROPVARS PARM TO OMIT THEM FROM THE OUTPUT DATA SET. 95 run; INFO: Index geos selected for BY clause processing. NOTE: There were 724596 observations read from the data set USER.AGGINSF1. NOTE: The data set USER.AGGOUTSF1 has 206 observations and 3069 variables. NOTE: Compressing data set USER.AGGOUTSF1 decreased size by 18.97 percent. Compressed is 47 pages; un-compressed would require 58 pages. NOTE: DATA statement used: real time 2:12:32.11 user cpu time 33:53.68 system cpu time 10.77 seconds Memory 3146k Page Faults 29961 Page Reclaims 32699 Page Swaps 0 6 The SAS System 15:04 Monday, January 7, 2002 Voluntary Context Switches 0 Involuntary Context Switches 256430 96 97 data sf1.mosenate02ph(label='Missouri State Senate Districts P & H Tables' drop=sldl house cd108 compress=yes) 98 sf1.mohouse02ph(label='Missouri State House Disticts, P & H tables' drop=sldu senate cd108 compress=yes) 99 sf1.mocd108ph(label='Missouri 108th Cong District, P & H Tables' drop=sldu senate sldl house compress=yes); 100 length sumlev $3 geocode $3 cd108 $2 sldu senate sldl house $3 areaname $40 ; 101 set aggoutsf1; 102 *by sumlev sldcode; 103 geocode=sldcode; 104 if sumlev='500' then do; 105 cd108=sldcode; areaname="Cong District " ||cd108||" (108th Congress)"; 106 end; 107 else if sumlev='610' then do; 108 sldu=sldcode; senate=sldcode; areaname='State Senate District '||left(senate); 109 end; 110 else do; 111 sldl=sldcode; house=sldcode; areaname='State House District '||left(house); 112 end; 113 drop _lvl_ _nag_ sldcode; 114 label senate='State Senate District' house='State House District'; 115 format intptlon 11.6 intptlat 10.6; 116 117 *---Calculate all the age medians from the corresponding distributions. Note that we do not have explicit distrib 118 tables for total age, but have to create the totals by summing male and female counts in each case.--; 119 array _p12t {23} _temporary_; 120 array _p12w {23} _temporary_ (5, 5, 5, 3, 2,1,1,3,5,5,5,5,5,5,5,2,3,2,3,5,5,5,5); 121 option NOmprint; 122 123 %macro domedian(r); 124 %*--r is the race code for the table. We do the same processing on corresponding p13 and p12 tables depending on 125 the race code. When r is blank we are working with the unqualified total-pop tables--; 126 array _p12&r.m p12&r.i3-p12&r.i25; 127 array _p12&r.f p12&r.i27-p12&r.i49; 128 do _i_ = 1 to 23; 129 _p12t{_i_}=_p12&r.m{_i_} + _p12&r.f{_i_}; 130 end; 131 %*--Example: when r=a then the first macro invocation says to calculate the est median variable p13ai1 by using 132 the data distribution values in array _p12t (data from table p12a, summed over sex) and using the array _p12w 133 of constant "interval widths" data. The second median invocation repeats this process but assigns result to 134 p13ai2 and uses the _p12am data distribution array which is the set of male counts. And the 3rd invocation 135 creates p13ai3 as the female median by working with the array of females counts in _p12af.---; 136 137 %median(mdn=p13&r.i1,intvals=_p12t,intsize=_p12w,samestep=1) ; %*--medians for total pop-; 138 %median(mdn=p13&r.i2,intvals=_p12&r.m,intsize=_p12w,samestep=1) ; %*--medians for males-; 139 %median(mdn=p13&r.i3,intvals=_p12&r.f,intsize=_p12w,samestep=1) ; %*--medians for females-; 140 %mend domedian; 141 142 %domedian() ;*--Assigns p13i1, p13i2 and p13i3 using data in distribution array p12-; 143 %domedian(a) ;*--Assigns p13ai1, p13ai2 and p13ai3 using data in distribution array p12a-; 144 %domedian(b) ;*--etc.--; 145 %domedian(c) 146 %domedian(d) 147 %domedian(e) 7 The SAS System 15:04 Monday, January 7, 2002 148 %domedian(f) 149 %domedian(g) 150 %domedian(h) 151 %domedian(I) 152 format geocode house senate sldl sldu $char3.; *<-----contain leading blanks!!!!!!----; 153 drop _haf -- _slot2; *--temp vars used by median macro--; 154 if sumlev='610' then output sf1.mosenate02ph; else if sumlev='620' then output sf1.mohouse02ph; 155 else output sf1.mocd108ph; 156 157 run; NOTE: There were 206 observations read from the data set USER.AGGOUTSF1. NOTE: The data set SF1.MOSENATE02PH has 34 observations and 3070 variables. NOTE: Compressing data set SF1.MOSENATE02PH decreased size by 6.67 percent. Compressed is 14 pages; un-compressed would require 15 pages. NOTE: The data set SF1.MOHOUSE02PH has 163 observations and 3070 variables. NOTE: Compressing data set SF1.MOHOUSE02PH decreased size by 19.15 percent. Compressed is 38 pages; un-compressed would require 47 pages. NOTE: The data set SF1.MOCD108PH has 9 observations and 3069 variables. NOTE: Compressing data set SF1.MOCD108PH increased size by 11.11 percent. Compressed is 10 pages; un-compressed would require 9 pages. NOTE: DATA statement used: real time 4.10 seconds user cpu time 0.86 seconds system cpu time 0.12 seconds Memory 5549k Page Faults 120 Page Reclaims 6054 Page Swaps 0 Voluntary Context Switches 0 Involuntary Context Switches 117 158 159 *---verify that the total pops agg to state total---; 160 proc means data=sf1.mosenate02ph(keep=pop100) sum n min max mean; 161 var pop100; 162 title 'Means of sf1.mosenate02ph'; 163 run; NOTE: There were 34 observations read from the data set SF1.MOSENATE02PH. NOTE: The PROCEDURE MEANS printed page 1. NOTE: PROCEDURE MEANS used: real time 1.05 seconds user cpu time 0.02 seconds system cpu time 0.00 seconds Memory 397k Page Faults 107 Page Reclaims 145 Page Swaps 0 Voluntary Context Switches 0 Involuntary Context Switches 2 164 165 proc means data=sf1.mohouse02ph(keep=pop100) sum n min max mean; 8 The SAS System 15:04 Monday, January 7, 2002 166 var pop100; 167 title 'Means of sf1.mohouse02ph'; 168 run; NOTE: There were 163 observations read from the data set SF1.MOHOUSE02PH. NOTE: The PROCEDURE MEANS printed page 2. NOTE: PROCEDURE MEANS used: real time 0.08 seconds user cpu time 0.08 seconds system cpu time 0.00 seconds Memory 397k Page Faults 0 Page Reclaims 85 Page Swaps 0 Voluntary Context Switches 0 Involuntary Context Switches 8 169 170 proc means data=sf1.mocd108ph(keep=pop100) sum n min max mean; 171 var pop100; 172 title 'Means of sf1.mocd108ph'; 173 run; NOTE: There were 9 observations read from the data set SF1.MOCD108PH. NOTE: The PROCEDURE MEANS printed page 3. NOTE: PROCEDURE MEANS used: real time 0.01 seconds user cpu time 0.00 seconds system cpu time 0.00 seconds Memory 397k Page Faults 1 Page Reclaims 84 Page Swaps 0 Voluntary Context Switches 0 Involuntary Context Switches 0 174 175 176 *-------------------------------------------------------------------------------------------------------------*; 177 /*<=========================Comment out===================================== 178 *---Part 2: Allocate the pct tables to the districts. This involves allocating with disaggregation from 080 sumlevs-; 179 180 *---begin by generating a split tract (sumlev 080) to leg. district corr. list---*; 181 data blks1(compress=no) ; 182 set georef.moblks00(keep=sumlev &geos80 sldu02 sldl02 cd108 pop100); 183 where sumlev='101' and pop100; 184 sumlev='610'; sldcode=sldu02; output; 185 sumlev='620'; sldcode=sldl02; output; 186 sumlev='500'; sldcode=cd108; output; 187 drop sldu02 sldl02 cd108; 188 run; 189 proc sort; by sumlev &geos80 sldcode; run; 190 191 *--This corrwt utility macro turns this into a correlation list relating sumlev/level 080 groups to districts. 9 The SAS System 15:04 Monday, January 7, 2002 192 There are really two separate corr lists here because of the use of sumlev. A typical output obs created here will 193 have values for all the g1 and g2 codes (each unique combination), pop100 (containing the total population of the 194 intersection) and afact, the "allocation factor", with a value between 0 and 1 indicating the decimal portion of 195 the sumlev 080 area that falls within the sldcode (state leg district) area. 196 ---; 197 %corrwt(setin=blks1,setout=corrlsts, 198 g1=sumlev &geos80, 199 g2=sldcode, 200 weight=pop100,keepwt=1) 201 run; 202 proc sort; by &geos80 sumlev sldcode ; run; 203 204 *---merge the correlation list with the 080 level summaries in the pct sf1 data set--; 205 data merged; 206 merge corrlsts (in=inclist rename=(sumlev=sumlevC) drop=pop100 ) 207 sf1.mopct(in=insf1 where=(sumlev='080' and pop100) 208 keep=sumlev &geos80 pop100 hu100 pct1i1 -- pct17Ii75); 209 by &geos80; 210 if inclist; 211 sumlev=sumlevC; drop sumlevC; *--the sumlev on the sf1 data set overrides the one on clist, so we fix it-; 212 if not insf1 then do; 213 _nbad+1; 214 if _nbad le 20 then do; 215 put '***No sf1 data for ' &geos80 ; 216 delete; 217 end; 218 else stop; drop _nbad; 219 end; 220 run; 221 proc sort data=merged; by sumlev sldcode; run; 222 223 *----Aggregate the pct table data by the districts----; 224 225 226 %agg(aggin=merged,aggout=aggoutpct, 227 aggby=sumlev sldcode , 228 facvar=afact, 229 aggvars=pop100 hu100 pct1i1 -- pct17Ii75, 230 naggvars=1920, 231 agglvls=1) 232 run; 233 234 data sf1.mosenate02pct(label='Missouri Senate Districts 2002 PCT Tables (est)' drop=sldl house cd108 compress=yes) 235 sf1.mohouse02pct(label='Missouri House Districts 2002 PCT Tables (est)' drop=sldu senate cd108 compress=yes) 236 sf1.mocd108pct(label='Missouri 108th cong Districts PCT Tables (est)' drop=sldu senate sldl house compress=yes) ; 237 238 length sumlev $3 geocode sldl sldu senate house $3 cd108 $2 areaname $40 ; 239 set aggoutpct; 240 geocode=sldcode; 241 if sumlev='500' then do; 242 cd108=sldcode; areaname="Cong District " ||cd108||" (108th Congress)"; 243 end; 244 else if sumlev='610' then do; 245 sldu=sldcode; senate=sldcode; areaname='State Senate District '||left(senate); 246 end; 247 else if sumlev='620' then do; 10 The SAS System 15:04 Monday, January 7, 2002 248 sldl=sldcode; house=sldcode; areaname='State House District '||left(house); 249 end; 250 drop _lvl_ _nag_ sldcode; 251 format geocode house senate sldl sldu $char3.; *<---no leading blanks on these as with originals--; 252 label senate='State Senate District (2002)' house='State House District (2002)'; 253 if sumlev='620' then output sf1.mohouse02pct; else if sumlev='610' then output sf1.mosenate02pct; 254 else output sf1.mocd108pct; 255 run; 256 257 proc means data=sf1.mosenate02pct (keep=pop100) sum n min max mean; 258 var pop100; 259 title 'Means of sf1.mosenate02pct'; 260 run; 261 262 proc means data=sf1.mohouse02pct(keep=pop100) sum n min max mean; 263 var pop100; 264 title 'Means of sf1.mohouse02pct'; 265 run; 266 267 proc means data=sf1.mocd108pct(keep=pop100) sum n min max mean; 268 var pop100; 269 title 'Means of sf1.mocd108pct'; 270 run; 271 ===========================End commented out================================ */ 272 273 %include sascode(notify); **** aggsf1_moslds02 (20824) has completed Monday 07JAN02 15:04 syserr=0 ***** NOTE: SAS Institute Inc., SAS Campus Drive, Cary, NC USA 27513-2414 NOTE: The SAS System used: real time 3:08:00.17 user cpu time 46:56.64 system cpu time 26.66 seconds Memory 17724k Page Faults 54470 Page Reclaims 91165 Page Swaps 0 Voluntary Context Switches 46 Involuntary Context Switches 365735