如何在 sas 中创建频率表(附示例)
您可以使用 SAS 中的proc freq为数据集中的一个或多个变量快速创建频率表。
以下示例展示了如何将此过程与名为BirthWgt的 SAS 内置数据集结合使用,该数据集包含 100,000 名最近分娩的母亲的各种特征。
我们可以使用proc print来显示该数据集的前 10 个观测值:
/*view first 10 observations from BirthWgt dataset*/ proc print data =sashelp.BirthWgt( obs = 10 ); run ;
示例 1:变量的频率表
我们可以使用以下代码为 Race 变量创建频率表:
/*create frequency table for Race variable*/
proc freq data =sashelp.BirthWgt;
Race tables ;
run ;
输出表包含四列:
- 频率:属于某一类别的观察总数。
- 百分比:属于某一类别的观察总数的百分比。
- 累积频率:截至当前行(包括当前行)已考虑的观测值总数。
- 累积百分比:截至当前行(包括当前行)已考虑的总观测值的累积百分比。
例如,从输出表中我们可以看到:
- 西班牙裔母亲总数为22,139 人。
- 西班牙裔母亲的总比例为22.14% 。
- 亚裔、黑人或西班牙裔母亲总数为41,496 人。
- 亚裔、黑人或西班牙裔母亲的累计比例为41.50% 。
示例 2:变量的频率表(已排序)
默认情况下,频率表根据类别名称按字母顺序排序。但是,我们可以使用order函数按频率对类别进行排序:
/*create frequency table for Race variable, sorted by frequency*/
proc freq data =sashelp.BirthWgt order =freq;
Race tables ;
run ;
请注意,类别现在根据频率从最高到最低进行排序。
示例 3:变量的频率表(包括缺失值)
默认情况下,缺失值不包含在频率表中。
但是,我们可以使用missing命令告诉SAS包含一行来计算缺失值的频率:
/*create frequency table for Race variable, sorted by frequency*/
proc freq data =sashelp.BirthWgt order =freq;
Race/missing tables ;
run ;
由于频率表中没有添加额外的行,这告诉我们原始数据集中没有种族缺失值。
示例 4:多个变量的频率表
要一次为多个变量创建频率表,我们可以简单地在tables参数中包含多个变量名称。
例如,我们可以使用以下代码创建 Race 和 AgeGroup 的频率表:
/*create frequency table for Race and AgeGroup variables, both sorted by frequency*/
proc freq data =sashelp.BirthWgt order =freq;
Race AgeGroup tables ;
run ;
我们可以看到已经为两个变量创建了频率表。