- 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 - 布兰德-奥特曼分析
- SAS-卡方
- SAS - 费舍尔精确测试
- 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;
以下是所使用参数的描述 -
数据集是数据集的名称。
Variable_1和Variable_2是需要计算频率分布的数据集的变量名称。
例子
考虑从由SASHELP.CARS创建的数据集 cars1 中查找每个汽车品牌下有多少种可用汽车类型的情况,如下所示。在这种情况下,我们需要各个品牌和类型的各个频率值以及频率值之和。我们可以观察到结果显示了跨行和列的值。
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;
执行上述代码时,我们得到以下结果 -
3 个变量的交叉表
当我们有三个变量时,我们可以将其中的两个分组,并将这两个变量与第三个变量进行交叉制表。所以在结果中我们有两个交叉表。
例子
在下面的示例中,我们找到每种类型的汽车和每种型号的汽车相对于汽车品牌的频率。我们还使用 nocol 和 norow 选项来避免求和和百分比值。
proc FREQ data = CARS2 ; tables make * (type model) / nocol norow nopercent; run;
执行上述代码时,我们得到以下结果 -
4 个变量的交叉表
如果有 4 个变量,配对组合的数量增加到 4 个。第 1 组中的每个变量都与第 2 组中的每个变量配对。
例子
在下面的示例中,我们找到每个品牌和每个型号的汽车长度频率。同样,每个品牌和每个型号的马力频率。
proc FREQ data = CARS2 ; tables (make model) * (length horsepower) / nocol norow nopercent; run;
执行上述代码时,我们得到以下结果 -