文章目录

  • 前言
  • 一、TABULATE过程的基本语法
  • 二、使用步骤
  • 1.制作基本汇总报表
  • 2.统计量与同时计算多种统计量
  • 总结



前言

对于观测数庞大的数据集,通过汇总报表可以集中地反映数据的概要特征。


一、TABULATE过程的基本语法

proc tabulate data=数据集 <选项>;
	class 变量1	<变量2	变量3...>;
	var	变量4	<变量5 变量6... >;
	table	<<页表达式,> 行表达式,> 列表达式</选项 >;
run;

说明:

  1. class语句中的变量为分类变量,依据分类变量不同取值可以将数据集中的观测划分为不同的分组类别。
  2. var语句中的变量称为分析变量,这些变量就是进行分析计算的对象。
  3. table语句用来定义表格布局。

二、使用步骤

1.制作基本汇总报表

先来观察一下原先的数据集

iostat 输出参数 输出tabstat结果输出_取值


1.1显示每一个洲的交易次数

代码如下(示例):

proc tabulate data=ex.sales_halfyear;
	title1 'Sales in North America';
	title2 'Trancations in Each State';
	class state;
	table state;	/* table只有一个表达式时,以这个表达式作为列表达式 ,表达式的每个取值作为一列*/
run;

结果如下:

iostat 输出参数 输出tabstat结果输出_Sales_02


1.2显示每一个洲的交易金额

代码如下(示例):

proc tabulate data=ex.sales_halfyear;
	title1 'Sales in North America';
	title2 'Trancations in Each State';
	class state;
	var amount;
	table state,amount;	/* table只有一个表达式时,以这个表达式作为列表达式 ,表达式的每个取值作为一列*/
run;

结果如下:

iostat 输出参数 输出tabstat结果输出_sass_03


1.3汇总每种产品在每个洲的交易金额总和

代码如下(示例):

proc tabulate data=ex.sales_halfyear;
	title1 'Sales in North America';
	title2 'Total Amount Sold in Each State for Each Type';
	class state type;
	var amount;
	table type,state,amount;
run;

结果如下:

iostat 输出参数 输出tabstat结果输出_sass_04


还可以通过星号(*)将两个表合并在一个表上,绘制成交叉组合表格

代码如下(示例):

proc tabulate data=ex.sales_halfyear;
	title1 'Sales in North America';
	title2 'Total Amount Sold in Each State for Each Type';
	class state type;
	var amount;
	table type*state,amount;
run;

结果如下:

iostat 输出参数 输出tabstat结果输出_sass_05


注:此时的type*state代表行维度

分析:原数据集中的type变量只有Customerize和Simple,则以这两个type的值分别汇总了每个州的交易金额总额。

2.统计量与同时计算多种统计量

在上面的例子中,使用的都是系统默认的统计量,其中分类变量的默认统计量N,分析变量的默认统计量为SUM。除了频数的统计量和i去和统计量TABULATE还有其他统计量。

统计量

作用

N

频数统计量,非缺失值个数

NMISS

缺失值个数

MEAN

平均值

MAX

最大值

SUM

求和

VAR

方差

PCTN

观测在所有观测中所占的个数

COLPCTN

观测数在本列所有观测中所占的百分比

POWPCTN

观测数在本行中所有观测中所占的百分比

PCTSUM

观测值总和在所有观测值总和中所占的百分比

COLPCTSUM

观测值总和本列所有观测值总和中所占的百分比

ROWPCTSUM

观测值总和在本行所有观测总和中所占的百分比

使用TABULATE过程制作汇总表格时,还可以同时显示多个统计量,还是使用之前的数据集,显示每种产品在每个洲的交易次数,平均销售金额,销售总额。
代码如下(示例):

proc tabulate data=ex.sales_halfyear;
	title1 'Sales Report in North America';
	class state type;
	var amount;
	table type*state,amount*n amount*mean amount;
run;

结果如下:

iostat 输出参数 输出tabstat结果输出_Sales_06

总结

以上就是今天要讲的内容,本文介绍了SAS中TABULATE的使用,通过TABULATE来对观测数庞大的数据集进行汇总。
提示: 本文章内容来自《深入解析SAS》第五章----数据汇总与展现,详细内容可自行了解阅读