/*******************************************/ /* Lab4 program for Info747 class */ /* Author: Erika, modified from a program */ /* by John Abowd */ /* Created: Feb 22, 2005 */ /*******************************************/ options obs=max mprint; libname info747 "/data/working/01/mcent002/census2000/info747"; libname sasdata "/data/master/censas/scef2000/sasdata"; /*BEGINCC Create family income variable (not on internal SCEF files) Family income=total income from all source of all related persons in household (standard census definition of family) ENDCC*/ data finc_ak (keep=puid finc state_source); set sasdata.pik_per (where=(state_source='ak')); by puid; if first.puid then finc=0; if qrel<=16 then finc+qinctot; if last.puid then output; run; /*BEGINCC Start macro for female/male analysis ENDCC*/ %let genders=female*male; %let sexcodes=2*1; %macro job; %do i=1 %to 1; %let gender=%scan(&genders.,&i.,*); %let sexcode=%scan(&sexcodes.,&i.,*); /*BEGINCC Extract person variables for: Women (qsex=2); Men (qsex=1) who are not in group quarters (rt=3) in Alaska (state_source='ak') who are householders (qrel=01) and merge to family income data ENDCC*/ data info747.prec_&gender.; merge sasdata.pik_per (where=(state_source='ak' and rt="3" and qsex="&sexcode." and qrel='01') in=in_a) finc_ak; by puid; personweight=input(pwt,3.0); if in_a then output; run; /*BEGINCC Begin analysis ENDCC*/ proc means data=info747.prec_&gender. n mean std; weight personweight; var finc; run; proc summary data=info747.prec_&gender.; weight personweight; class block; var finc; output out=info747.block_finc p50(finc)=block_finc; run; proc print data=info747.block_finc (where=(_FREQ_>50)); title "Partial Print of Block_finc for &gender."; run; proc sort data=info747.prec_&gender.; by block; data info747.prec_&gender.2; merge info747.prec_&gender.(in=a) info747.block_finc(keep=block block_finc); by block; if a; run; proc corr data=info747.prec_&gender.2; var finc block_finc; run; %end; /*END do to loop*/ %mend; %job;