当一位数据分析师拿到一份崭新的数据时,他要做的第一件事很可能是了解其中关键指标的分布情况。频数统计是应对这一情况的最基本的分析工具。分析师通过创建频数统计表,获知某项指标各个或各段值所占的百分比,达到快速了解数据概况的目的。在数据量较少的情况下,强大的Excel可以以多种方式满足分析师的需求。但如果数据量达到百万级,则需要使用更为强大的分析工具。在本文中,我们介绍SAS的频数统计功能,这一功能是通过freq过程步实现的。
Freq过程步是SAS Base的一个古老的程序,它可以创建一维至n维的频数分布表和交叉表。Freq过程步的语法格式如下:
PROC FREQ < options > ; BY variables ; EXACT statistic-options < / computation-options > ; OUTPUT < OUT=SAS-data-set > options ; TABLES requests < / options > ; TEST options ; WEIGHT variable < / option > ; |
本文将介绍Freq过程步的应用方法。在介绍之前,需要准备好测试数据。我们从互联网上找了一批数据形成一张表,数据的内容是国内股票市场各只股票的若干财务数据,字段如下:
列名 | 中文名 |
StockCode | 股票代码 |
StockName | 股票名称 |
Source | 来源板块 |
EPS | 每股收益(元) |
EPS_YOY | 每股收益同比(%) |
NAPS | 每股净资产(元) |
ROE | 净资产收益率(%) |
CFPS | 每股现金流量(元) |
NP | 净利润(万元) |
该表共有2472条观测(记录),数据下载地址:http://pan.baidu.com/share/link?shareid=134615&uk=1258687326
构建程序初始环境:
data _null_;
workspace = "D:\SASWorkspace\练习";*工作区根目录;
call symput("workspace", workspace);
run;
libname Practice "&workspace.\中间数据\";
然后把原始数据上传到Practice逻辑库中,并命名为MainIndex_2012sea3。
*为了不破坏原始数据,把表copy到work逻辑库中;
data Work.MainIndex_2012sea3;
set Practice.MainIndex_2012sea3;
run;
先来看一段最简单的代码:
proc freq data = Work.MainIndex_2012sea3;
run;
在这个程序中,freq过程步将为每个变量都创建一张一维频数分布表,每张表都统计了观测的频数、百分比、累积频数和累积百分比。比如,对于变量Source,输出的表格如下: