options ps=54 ls=80; data simall; delete; run; data one; infile 'H:\public_html\data\uscty3090.dat'; input county $ 1-27 pop30 pop40 pop50 pop60 pop70 pop80 pop90; keep county pop90; run; data two; infile 'H:\public_html\data\medage.dat'; input county $ 1-29 medage; run; proc sort data=one; by county; proc sort data=two; by county; data all; merge one two; by county; if pop90 > 0 and medage>0; pop90=pop90/100000; w1medage=pop90*medage/1973.18; wmedage=pop90*medage; run; proc univariate; var medage w1medage pop90; run; proc corr; var medage pop90; run; %macro loop (lo,hi); %do i=&lo %to &hi; data allnew; set all; x=ranuni(&i*2349); run; proc sort; by x; run; data allnew1; set allnew; if _n_ <=30; run; /* proc sort; by county; proc print; */ data allnew2; set allnew1; retain sumage sumwtage sumwt 0; sumage=sumage+medage; sumwtage=sumwtage+wmedage; sumwt=sumwt+pop90; if _n_=30 then output; keep sumage sumwtage sumwt; data simall; set simall allnew2; run; %end; %mend; %loop(1,100); run; data simall; set simall; wtmean=sumwtage/sumwt; uwtmean=sumage/30; run; proc univariate plot normal; var wtmean uwtmean; run; proc corr; var wtmean uwtmean; run; quit; /* proc print data=simall; run; quit;