%let name=mortality_us_2013; filename odsout '.'; /* Imitation/enhancement of: http://www.cdc.gov/pcd/issues/2015/14_0395.htm Using data copy-n-pasted from: http://www.cdc.gov/nchs/data/nvsr/nvsr64/nvsr64_02.pdf */ proc format; value $causfmt "hiv"="Human immunodeficiency virus (HIV) disease" "malignant_neoplasms"="Malignant neoplasms" "diabetes"="Diabetes mellitus" "parkinsons"="Parkinson's disease" "alzheimers"="Alzheimer's disease" "diseases_of_heart"="Diseases of hear" "hypertension"="Essential hypertension and hypertensive renal disease" "cerebrovascular"="Cerebrovascular diseases" "influenza_and_pneumonia"="Influenza and pneumonia" "chronic_lower_respiratory"="Chronic lower respiratory diseases" "chronic_liver"="Chronic liver disease and cirrhosis" "nephritis"="Nephritis, nephrotic syndrome, and nephrosis" "accidents"="Accidents" "motor_vehicle_accidents"="Motor vehicle accidents" "suicide"="Intentional self-harm (suicide)" "homicide"="Assault (homicide)" "alcohol"="Alcohol-induced causes" "drugs"="Drug-induced causes" "firearms"="Injury by firearms" other="???"; run; filename file1 'mortality_us_2013_file1.txt'; data my_data1 (drop = whole_line numbers); infile file1 lrecl=200 pad firstobs=1; input whole_line $ 1-200; length statename $100; statename=scan(whole_line,1,':'); whole_line=translate(whole_line,'.','*'); length numbers $200; numbers=scan(whole_line,2,':'); hiv=input(scan(numbers,6,' '),comma10.1); malignant_neoplasms=input(scan(numbers,9,' '),comma10.1); diabetes_mellitus=input(scan(numbers,12,' '),comma10.1); run; filename file2 'mortality_us_2013_file2.txt'; data my_data2 (drop = whole_line numbers); infile file2 lrecl=200 pad firstobs=1; input whole_line $ 1-200; length statename $100; statename=scan(whole_line,1,':'); whole_line=translate(whole_line,'.','*'); length numbers $200; numbers=scan(whole_line,2,':'); parkinsons=input(scan(numbers,3,' '),comma10.1); alzheimers=input(scan(numbers,6,' '),comma10.1); diseases_of_heart=input(scan(numbers,9,' '),comma10.1); hypertension=input(scan(numbers,12,' '),comma10.1); run; filename file3 'mortality_us_2013_file3.txt'; data my_data3 (drop = whole_line numbers); infile file3 lrecl=200 pad firstobs=1; input whole_line $ 1-200; length statename $100; statename=scan(whole_line,1,':'); whole_line=translate(whole_line,'.','*'); length numbers $200; numbers=scan(whole_line,2,':'); cerebrovascular=input(scan(numbers,3,' '),comma10.1); influenza_and_pneumonia=input(scan(numbers,6,' '),comma10.1); chronic_lower_respiratory=input(scan(numbers,9,' '),comma10.1); chronic_liver=input(scan(numbers,12,' '),comma10.1); run; filename file4 'mortality_us_2013_file4.txt'; data my_data4 (drop = whole_line numbers); infile file4 lrecl=200 pad firstobs=1; input whole_line $ 1-200; length statename $100; statename=scan(whole_line,1,':'); whole_line=translate(whole_line,'.','*'); length numbers $200; numbers=scan(whole_line,2,':'); nephritis=input(scan(numbers,3,' '),comma10.1); accidents=input(scan(numbers,6,' '),comma10.1); motor_vehicle_accidents=input(scan(numbers,9,' '),comma10.1); suicide=input(scan(numbers,12,' '),comma10.1); run; filename file5 'mortality_us_2013_file5.txt'; data my_data5 (drop = whole_line numbers); infile file5 lrecl=200 pad firstobs=1; input whole_line $ 1-200; length statename $100; statename=scan(whole_line,1,':'); whole_line=translate(whole_line,'.','*'); length numbers $200; numbers=scan(whole_line,2,':'); homicide=input(scan(numbers,3,' '),comma10.1); alcohol=input(scan(numbers,6,' '),comma10.1); drugs=input(scan(numbers,9,' '),comma10.1); firearms=input(scan(numbers,12,' '),comma10.1); run; proc sort data=my_data1; by statename; run; proc sort data=my_data2; by statename; run; proc sort data=my_data3; by statename; run; proc sort data=my_data4; by statename; run; proc sort data=my_data5; by statename; run; data my_data; merge my_data1 my_data2 my_data3 my_data4 my_data5; by statename; run; proc transpose data=my_data out=tran_data (rename=(_name_=cause col1=rate)); by statename; run; data tran_data tran_data_avg; set tran_data; if statename='United States' then output tran_data_avg; else output tran_data; run; proc sql noprint; create table tran_data as select unique tran_data.*, tran_data_avg.rate as cause_avg_rate from tran_data left join tran_data_avg on tran_data.cause=tran_data_avg.cause; quit; run; proc sort data=tran_data out=tran_data; by cause statename; run; data tran_data; set tran_data; above_below_avg = (rate/cause_avg_rate)-1; run; proc sql noprint; create table highest as select unique statename, rate, cause_avg_rate, above_below_avg, cause from tran_data group by statename having above_below_avg=max(above_below_avg); quit; run; data highest; set highest; length my_html $500; my_html= 'title='||quote( trim(left(statename))||' was '||put(above_below_avg,percentn7.1)||' above the national average for '||'0d'x|| trim(left(put(cause,$causfmt.)))||'0d'x|| '------------------------'||'0d'x|| trim(left(statename))||' rate = '||trim(left(rate))||' per 100,000.'||'0d'x|| 'National average = '||trim(left(put(cause_avg_rate,comma10.1)))||' per 100,000.')|| ' href='||quote('http://www.google.com/search?q='||trim(left(put(cause,$causfmt.)))||'+death rate+site:cdc.gov'); length legend_html $500; legend_html= 'title='||quote(trim(left(put(cause,$causfmt.))))|| ' href='||quote('http://www.google.com/search?q='||trim(left(put(cause,$causfmt.)))||'+death rate+site:cdc.gov'); run; data my_map; set mapsgfk.us; statename=fipnamel(state); run; goptions device=png; goptions xpixels=800 ypixels=750; goptions border; ODS LISTING CLOSE; ODS HTML path=odsout body="&name..htm" (title="Mortality in the US, year 2013") style=htmlblue; goptions gunit=pct htitle=18pt ftitle="albany amt/bold" htext=12pt ftext="albany amt" ctext=gray33; legend1 label=none across=1 shape=bar(.15in,.15in); title1 link="http://www.cdc.gov/nchs/data/nvsr/nvsr64/nvsr64_02.pdf" ls=1.5 "Most Distinctive Causes of Death in each state"; title2 ls=0.8 "For the year 2013"; title3 a= 90 h=15pt ' '; title4 a=-90 h=15pt ' '; footnote1 link="http://www.cdc.gov/nchs/data/nvsr/nvsr64/nvsr64_02.pdf" c=gray "Data source: CDC 2013 Mortality Multiple Cause Micro-data Files"; proc gmap data=highest map=my_map; format cause $causfmt.; id statename; choro cause / legend=legend1 coutline=gray88 html=my_html html_legend=legend_html des='' name="&name"; run; quit; ODS HTML CLOSE; ODS LISTING;