📅  最后修改于: 2021-01-08 14:35:31             🧑  作者: Mango
在SAS中,交叉列表是最有用的分析工具之一。它是通过特定的统计程序实现的,以生成交叉表,也称为列联表。
交叉表确定两个类别变量之间的关系。它使用两个或多个变量的所有可能组合来生成交叉表。
我们可以使用PROC FREQ和TABLES选项生成一个交叉表。
要生成单向频率表,请使用TABLES语句。不使用TABLES语句,PROC FREQ将仅为数据集中存在的所有变量生成单向表。
TABLES语句中使用的变量可以是数字变量,也可以是分类变量,因为PROC FREQ认为所有变量都是分类变量。
PROC FREQ DATA = dataset;
TABLES variable_1*Variable_2;
哪里,
PROC FREQ:这是用于查找频率的过程。
数据集:这是数据集的名称,该变量将用于创建交叉表。
表格:用于创建交叉表。
变量_1和变量_2:这些是需要计算其频率分布的变量的名称。
假设我们需要在数据集cars中找到每个汽车品牌下可用的汽车类型数量。 SAS HELP库中已提供数据集汽车。我们还需要发票的单个频率值,马力,长度,重量以及品牌和类型变量中这些频率值的总和。
PROC SQL;
create table CARS1 as
SELECT make, type, invoice, horsepower, length, weight
FROM
SASHELP.CARS
WHERE make in ('Acura','BMW')
;
RUN;
proc FREQ data = CARS1;
tables make*type;
run;
在SAS Studio中执行以上代码:
输出:
正如我们在上面的输出中看到的那样,已经使用发票,频率,功率,长度,重量及其总和的频率值生成了变量make和type的交叉表。
在三个变量的情况下,我们可以将两个变量组成一个组,然后将该组与第三个变量配对。
在以下示例中,我们将相对于汽车数据集的制造变量来查找模型和类型变量的频率。此外,我们使用NOCOL,NOROW,NOFREQ和NOPERCENT选项忽略输出的总和和百分比值。我们可以将这些选项以不同的组合方式一起使用或独立使用。
PROC SQL;
create table CARS1 as
SELECT make, type, model
FROM
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;
Proc freq data=CARS1;
Tables make * type model / nocol norow nopercent;
Run;
在SAS Studio中执行以上代码:
输出:
基于类型的频率:
频率依据型号:
对于四个变量,组合的总数为4,并且组1中的每个变量与组2中的每个变量配对。
在以下示例中,我们将相对于汽车数据集的制造变量来查找模型和类型变量的频率。
在下面的示例中,我们将为参数make和model找到汽车数据集的长度变量的频率。同样,用于可变品牌和型号的可变马力频率。
PROC SQL;
create table CARS1 as
SELECT make, model, length, horsepower
FROM
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;
Proc freq data=CARS1;
tables (make model) * (length horsepower) / nocol norow nopercent;
run;
在SAS Studio中执行以上代码:
输出:
从上面的输出中可以看到,组合的总数为4,并且组1中的每个变量已与组2中的每个变量配对。