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; popd9080=100*(pop90-pop80)/pop80; keep county pop90 popd9080; run; data two; infile 'H:\public_html\data\crime8090.dat'; input county $ 1-29 crime80 crime90; run; proc sort data=one; by county; proc sort data=two; by county; data all; merge one two; by county; if pop90 > 0; if crime80 >3 and crime90>3; rt9080=crime90/crime80; pop90=pop90/100000; pop90a=pop90/1927.6306; wrtpop=pop90*rt9080; wrtpopd=popd9080*rt9080; wrtpopa=pop90a*rt9080; run; proc print; var county pop90 rt9080 crime90 crime80; run; proc univariate; var rt9080 pop90a wrtpopa; run; proc corr cov; var rt9080 pop90a wrtpopa; run; %macro loop (lo,hi); %do i=&lo %to &hi; data allnew; set all; x=ranuni(&i*0419); 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 sumrt sumwtrt90 sumwt90 sumwtrtd9080 sumwt9080 0; sumrt=sumrt+rt9080; sumwtrt90=sumwtrt90+wrtpop; sumwt90=sumwt90+pop90; if _n_=30 then do; y30=wrtpop/sumwt90; output; keep sumrt sumwtrt90 sumwt90 /* sumwtrtd9080 sumwt9080 */ y30; end; * proc print; data simall; set simall allnew2; run; %end; %mend; %loop(1,500); run; proc print data=simall; data simall; set simall; wtmean90=sumwtrt90/sumwt90; wtmean9080=sumwtrtd9080/sumwt9080; uwtmean=sumrt/30; run; proc univariate plot normal; var wtmean90 uwtmean sumwt90 y30; run; proc corr; var wtmean90 uwtmean sumwt90 y30; run; quit; /* proc print data=simall; run; quit;