📜  SAS中的交叉制表

📅  最后修改于: 2021-01-08 14:35:31             🧑  作者: Mango

SAS中的交叉制表

在SAS中,交叉列表是最有用的分析工具之一。它是通过特定的统计程序实现的,以生成交叉表,也称为列联表。

交叉表确定两个类别变量之间的关系。它使用两个或多个变量的所有可能组合来生成交叉表。

我们可以使用PROC FREQTABLES选项生成一个交叉表。

要生成单向频率表,请使用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中执行以上代码:

输出:

正如我们在上面的输出中看到的那样,已经使用发票,频率,功率,长度,重量及其总和的频率值生成了变量maketype的交叉表。

3个变量的交叉表

在三个变量的情况下,我们可以将两个变量组成一个组,然后将该组与第三个变量配对。

在以下示例中,我们将相对于汽车数据集的制造变量来查找模型类型变量的频率。此外,我们使用NOCOL,NOROW,NOFREQNOPERCENT选项忽略输出的总和和百分比值。我们可以将这些选项以不同的组合方式一起使用或独立使用。

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个变量

对于四个变量,组合的总数为4,并且组1中的每个变量与组2中的每个变量配对。

例:

在以下示例中,我们将相对于汽车数据集的制造变量来查找模型类型变量的频率。

在下面的示例中,我们将为参数makemodel找到汽车数据集的长度变量的频率。同样,用于可变品牌型号的可变马力频率。

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中的每个变量配对。