登录
首页精彩阅读教你怎么用SAS来玩转统计地图
教你怎么用SAS来玩转统计地图
2016-04-14
收藏
我一直信奉古人名言:「工欲善其事,必先利其器」。因此,我经常地,不停地变换我手中的工具。一种方法在某工具里不好实现时,我换个工具;一种统计图形在某软件里不好实现时,我再换工具!久而久之,我感觉自己什么都会了,但又感觉自己其实什么都不会。比如,绘制统计地图时,可能首先想到:那最好是不是得用ArcGIS啊?或者再搞一个Epi Info啊?

其实,未必。SAS基本也能应付了。

SAS本身自带的库就存储了地图信息,比如maps, mapsgfk, mapssas这三个库里就存储了大量的地图信息。

打开Maps.China库,就可以看见经纬度信息,Maps.China2里还有更详细的省份信息。利用这些数据库,我们就可以很轻松的绘制中国地图了。




那么如何绘制呢? 会不会很麻烦?会不会很复杂?答案就在Proc gmap里面。

Proc Gmap的简化版语法:

proc gmap map=map-data-set  data=response-data-set ;

id  id-variable(s);

other sas statement;

run;

quit;

简单来说,proc gmap与其他过程不同的是,此过程有两个数据集:map存储了地图信息,data存储了反应变量信息。id语句则用来指定地图区域变量。other sas statement可以指定反应变量的各种形式,如choro, block等。

例如,画中国地图:

proc gmap map=maps.china data=maps.china ;

id id;

choro id /nolegend;

run;

quit;



当然,这样一个地图只限于玩乐,如果加上一个有意思的反应变量,就可以画出很多有意思的统计地图了。

比如:各地人均GDP的排名,各地PM2.5的浓度排名,各地某疾病的患病率,等等。

2013年各地人均GDP的排名,东部沿海果然是有钱。


2013各地人均GDP

代码其实也很简单,留意data数据集里的avggdp2013变量

proc gmap map=maps.china data=chinagdp ;

id id;

choro avggdp2013;

run;

quit;

某公益组织发布的各地2015年PM2.5平局浓度,真替在中原和帝都的地区的我们担心。


2015各省PM2.5浓度

上面的两图使用choro 语句实现的,当然,我们也可以换成其他形式,比如block形式。


2013各地人均GDP

有的时候,我们还需要加一些标签,也是可以的。


加省份名的中国地图

动态的Gif也是可以的,请看SAS官方的例子:


数据分析咨询请扫描二维码

客服在线
立即咨询