Sas:如何将 proc freq 与 where 语句一起使用


您可以使用以下基本语法在 SAS 的PROC FREQ中使用WHERE语句:

 proc freq data =my_data;
    where var1 ='A';
    tables var2;
run ;

此特定语法为名为var2的变量创建频率表,但仅适用于var1等于“A”的行。

以下示例展示了如何在实践中使用此语法。

示例:在 SAS 中使用 Proc FREQ 和 WHERE 语句

假设我们在 SAS 中有以下数据集:

 /*create dataset*/
data my_data;
    input team $position $points;
    datalines ;
A Guard 22
A Guard 20
A Guard 30
A Forward 14
A Forward 11
B Guard 12
B Guard 22
B Forward 30
B Forward 9
B Forward 12
B Forward 25
;
run ;

/*view dataset*/
proc print data =my_data; 

我们可以使用下面的PROC FREQ语句和WHERE语句来计算仅针对球队等于“A”的行的位置列中的值的频率:

 /*calculate frequency of position where team is equal to 'A'*/
proc freq data =my_data;
    where team='A';
    position tables ;
run ; 

输出仅显示 team 等于“A”的行的位置变量值的频率。

例如,我们可以看到:

  • A 队的“前进”值出现两次
  • A 队的“Guard”值出现3次。

我们还可以使用ORAND运算符在WHERE语句中指定多个条件。

例如,我们可以使用以下代码来计算位置列中球队等于“A”位置等于“Guard”的值的频率:

 /*calculate frequency of position where team is 'A' and position is 'Guard'*/
proc freq data =my_data;
    where team='A' and position='Guard';
    position tables ;
run ; 

输出仅显示球队等于“A”且位置等于“Guard”的行的位置变量值的频率。

注意:您可以在此处找到完整的PROC FREQ文档。

其他资源

以下教程解释了如何在 SAS 中执行其他常见任务:

如何在SAS中使用过程摘要
如何在 SAS 中使用 Proc Tabulate
如何在 SAS 中使用 Proc 排序规则

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注