- SAS 教程
- SAS - 首页
- SAS - 概述
- SAS - 环境
- SAS - 用户界面
- SAS - 程序结构
- SAS - 基本语法
- SAS - 数据集
- SAS - 变量
- SAS - 字符串
- SAS - 数组
- SAS - 数值格式
- SAS - 运算符
- SAS - 循环
- SAS - 决策
- SAS - 函数
- SAS - 输入方法
- SAS - 宏
- SAS - 日期和时间
- SAS 数据集操作
- SAS - 读取原始数据
- SAS - 写入数据集
- SAS - 合并数据集
- SAS - 合并数据集
- SAS - 子集数据集
- SAS - 排序数据集
- SAS - 格式化数据集
- SAS - SQL
- SAS - 输出交付系统
- SAS - 模拟
- SAS 基本统计过程
- SAS - 算术平均数
- SAS - 标准差
- SAS - 频数分布
- SAS - 交叉表
- SAS - T 检验
- SAS - 相关分析
- SAS - 线性回归
- SAS - Bland-Altman 分析
- SAS - 卡方检验
- SAS - Fisher 精确检验
- SAS - 重复测量分析
- SAS - 单因素方差分析
- SAS - 假设检验
- SAS 有用资源
- SAS - 快速指南
- SAS - 有用资源
- SAS - 问答
- SAS - 讨论
SAS - 交叉表
交叉表涉及使用两个或多个变量的所有可能组合生成交叉表,也称为列联表。在 SAS 中,它是使用PROC FREQ以及TABLES选项创建的。例如 - 如果我们需要每个汽车类型类别中每个品牌的每个型号的频率,那么我们需要使用 PROC FREQ 的 TABLES 选项。
语法
在 SAS 中应用交叉表的语法如下:
PROC FREQ DATA = dataset; TABLES variable_1*Variable_2;
以下是所用参数的说明:
数据集是数据集的名称。
变量_1 和变量_2是需要计算其频率分布的数据集的变量名称。
示例
考虑查找从数据集 cars1(从SASHELP.CARS创建,如下所示)中每个汽车品牌下有多少种汽车类型的情况。在这种情况下,我们需要单个频率值以及跨品牌和跨类型的频率值之和。我们可以观察到结果显示了跨行和跨列的值。
PROC SQL; create table CARS1 as SELECT make, type, invoice, horsepower, length, weight FROM SASHELP.CARS WHERE make in ('Audi','BMW') ; RUN; proc FREQ data = CARS1; tables make*type; run;
执行上述代码后,我们得到以下结果:
三个变量的交叉表
当我们有三个变量时,我们可以将其中两个分组,并将这两个变量中的每一个与第三个变量交叉表。因此,在结果中我们有两个交叉表。
示例
在下面的示例中,我们找到每种汽车类型和每种汽车型号相对于汽车品牌的频率。我们还使用 nocol 和 norow 选项来避免总和和百分比值。
proc FREQ data = CARS2 ; tables make * (type model) / nocol norow nopercent; run;
执行上述代码后,我们得到以下结果:
四个变量的交叉表
对于 4 个变量,配对组合的数量增加到 4。组 1 中的每个变量都与组 2 中的每个变量配对。
示例
在下面的示例中,我们找到每种品牌和每种型号的汽车长度的频率。同样地,每种品牌和每种型号的马力的频率。
proc FREQ data = CARS2 ; tables (make model) * (length horsepower) / nocol norow nopercent; run;
执行上述代码后,我们得到以下结果:
广告