在SAS中显示地图
在SAS9.0版中的地图数据,map.world中居然没有关于国家的信息.没有国家的信息,只有county ID,谁知道哪一个ID表示哪一个国家呢.
首先在http://support.sas.com/rnd/datavisualization/mapsonline/html/updates.html下载world的升级补丁.将下载后的文件解压至某个地方,假设是D盘.其中有一个文件是world_24oct05.cpt.
然后将数据导入library
proc cimport infile='d:"world_24oct05.cpt' lib=work;
run;
在work中有一个Name文件,每一个countryID对应有一个国家的名字,这下好办了.另外还有一个世界地图的文件world.
proc gmap map=work.world data=work.names;
id id; choro cont/discrete;
run;
其中ID是国家的ID,而Cont是指各大洲.
生成日本地图
data japan;
merge maps.japan maps.japan2;
by ID;
run;
proc sort data=japan;
by region;
run;
proc gremove
data=japan
out =japan1;
by region;
id region;
run;
data japan2;
set japan1;
if region='Chubu' then frequency=4714;
else
if region='Tohoku' then frequency=4374;
else
if region='Kyushu' then frequency=5649;
else
if region='Kinki' then frequency=7125;
else
if region='Kanto' then frequency=10714;
else
if region='Chugoku' then frequency=3477;
else
if region='Shikoku' then frequency=2417;
else
if region='Hokkaido' then frequency=8325;
else
if region='Okinawa' then frequency=7056;
run;
goptions reset=all;
proc gmap
map=japan2
data=japan2
all;
id region;
block frequency/discrete;
run;
by region;
run;
proc gremove
data=japan
out =japan1;
by region;
id region;
run;
data japan2;
set japan1;
if region='Chubu' then frequency=4714;
else
if region='Tohoku' then frequency=4374;
else
if region='Kyushu' then frequency=5649;
else
if region='Kinki' then frequency=7125;
else
if region='Kanto' then frequency=10714;
else
if region='Chugoku' then frequency=3477;
else
if region='Shikoku' then frequency=2417;
else
if region='Hokkaido' then frequency=8325;
else
if region='Okinawa' then frequency=7056;
run;
goptions reset=all;
proc gmap
map=japan2
data=japan2
all;
id region;
block frequency/discrete;
run;