📜  SAS 编程中的 Where 语句(1)

📅  最后修改于: 2023-12-03 14:47:13.540000             🧑  作者: Mango

SAS 编程中的 Where 语句

在 SAS 编程中,Where 语句是一种过滤数据的方法。可以使用 Where 语句从数据集中选择满足特定条件的观测值,并将它们用于后续分析。

Where 语句的语法

Where 语句使用在数据步或过程中,其语法如下:

WHERE 条件;

其中 条件 是一个布尔表达式,用于对数据的观测值进行过滤。

Where 语句的例子
示例数据集

为了演示 Where 语句的用法,我们将使用 SAS 自带的示例数据集 Sashelp.Class。该数据集包含了一些学生的基本信息和成绩数据。

proc print data=sashelp.class;
run;

输出结果:

| Obs | Name | Sex | Age | Height | Weight | | --- | --- | --- | --- | --- | --- | | 1 | Alfred | M | 14 | 69.0 | 112.5 | | 2 | Alice | F | 13 | 56.5 | 84.0 | | 3 | Barbara | F | 13 | 65.3 | 98.0 | | 4 | Carol | F | 14 | 62.8 | 102.5 | | 5 | Henry | M | 14 | 63.5 | 102.5 | | 6 | James | M | 12 | 57.3 | 83.0 | | 7 | Jane | F | 12 | 59.8 | 84.5 | | 8 | Janet | F | 15 | 62.5 | 112.5 | | 9 | Jeffrey | M | 13 | 62.5 | 84.0 | | 10 | John | M | 12 | 59.0 | 99.5 | | 11 | Joyce | F | 11 | 51.3 | 50.5 | | 12 | Judy | F | 14 | 64.3 | 90.0 | | 13 | Louise | F | 12 | 56.3 | 77.0 | | 14 | Mary | F | 15 | 66.5 | 112.0 | | 15 | Philip | M | 16 | 72.0 | 150.0 | | 16 | Robert | M | 12 | 64.8 | 128.0 | | 17 | Ronald | M | 15 | 67.0 | 133.0 | | 18 | Thomas | M | 11 | 57.5 | 85.0 | | 19 | William | M | 15 | 66.5 | 112.0 |

例子 1

Sashelp.Class 数据集中选取出 Age 大于 14 岁的学生。

data class_subset1;
    set sashelp.class;
    where age > 14;
run;

proc print data=class_subset1;
run;

输出结果:

| Obs | Name | Sex | Age | Height | Weight | | --- | --- | --- | --- | --- | --- | | 1 | Janet | F | 15 | 62.5 | 112.5 | | 2 | Mary | F | 15 | 66.5 | 112.0 | | 3 | Philip | M | 16 | 72.0 | 150.0 | | 4 | Ronald | M | 15 | 67.0 | 133.0 | | 5 | William | M | 15 | 66.5 | 112.0 |

例子 2

Sashelp.Class 数据集中选取出体重在 100 到 120 之间的男生。

data class_subset2;
    set sashelp.class;
    where sex = 'M' and weight between 100 and 120;
run;

proc print data=class_subset2;
run;

输出结果:

| Obs | Name | Sex | Age | Height | Weight | | --- | --- | --- | --- | --- | --- | | 1 | Alfred | M | 14 | 69.0 | 112.5 | | 2 | Henry | M | 14 | 63.5 | 102.5 | | 3 | Robert | M | 12 | 64.8 | 128.0 | | 4 | Ronald | M | 15 | 67.0 | 133.0 | | 5 | William | M | 15 | 66.5 | 112.0 |

Where 语句的注意事项
  1. Where 语句可以用在数据步和过程中,但是其用法还要看具体的语句。
  2. Where 语句是数据集过滤的一种方式,它只选取符合条件的观测值,而不会对数据进行修改。
  3. Where 语句中的 条件 可以是任何布尔表达式,包括等于、大于、小于、不等于等。
  4. Where 语句中可以使用逻辑运算符 AND 和 OR 来联合多个条件。
  5. SAS 支持外部常量和内部函数等方式构造布尔表达式,因此 Where 语句有很大的灵活性。
  6. Where 语句中可以使用到 SAS 自带的格式函数。
  7. 在使用 Where 语句的时候,需要注意 NULL 和缺失值的情况。可以使用 MISSING 函数判断缺失值。
总结

Where 语句是 SAS 编程中实用的数据过滤语句,可以用于选取符合条件的观测值。其中 条件 可以是任何布尔表达式,具有很大的灵活性。在应用 Where 语句时,需要注意空值和缺失值的情况,以保证分析结果的准确性。