数据集子集

2025年3月17日 | 阅读 3 分钟

在前一个主题中,我们学习了如何将多个数据集连接成一个数据集。现在,在这个主题中,我们将学习数据集的子集。

在 SAS 编程语言中,子集是通过从数据集中选择特定数量的变量或观测值或两者来完成的。

数据集的子集意味着从数据集中提取和保持特定数量的变量或观测值或两者。 SAS 提供了三个用于子集的语句

  • KEEP 语句
  • DROP 语句
  • DELETE 语句

变量的子集通过 KEEP 语句和 DROP 语句完成,而 DELETE 语句用于观测值的子集。

此外,来自子集操作的结果数据被组织在一个新的数据集中,该数据集可用于进一步分析。子集主要用于分析数据集的一部分,而不使用那些可能与分析无关的变量或观察结果。

变量的子集

变量的子集包括从整个数据集中提取和插入唯一特定数量的变量。

语法

其中,

Var1 和 var2: 这些是数据集中需要保留或删除的变量。

KEEP 语句

我们可以使用 KEEP 语句来保留所需变量的值。

示例

考虑下面包含研究所学生详细信息的数据集。如果我们只想使用数据集 student 中的 studyidage 的值,那么我们可以使用 KEEP 语句。

在 SAS studio 中执行上述代码

Sub-setting of data set

输出

Sub-setting of data set

正如您在输出中看到的,SAS 仅保留在 KEEP 语句下提到的变量的值。

DROP 语句

我们可以使用 DROP 语句来删除冗余变量的值。

示例

在 SAS studio 中执行上述代码

Sub-setting of data set

输出

Sub-setting of data set

正如您在输出中看到的,SAS 已经删除了 DROP 语句下提到的两个变量(studyid 和 age)。

DELETE 语句(观测值的子集)

在观测值的子集中,我们可以根据单个变量来操作数据集。它基于给定的条件提取变量的值。

语法

其中,

Var:这是变量的名称,将根据该变量删除观测值。

Condition: 这是一个布尔条件,它返回两个值,一个是 true,另一个是 false。在条件为真之前,所有观察结果都将被保存,当条件为假时,所有观察结果都将被删除。

示例

考虑下面包含研究所学生详细信息的数据集。如果我们只需要 id 值小于 5 的学生的详细信息,那么我们可以使用以下代码

在 SAS studio 中执行上述代码

Sub-setting of data set

输出

Sub-setting of data set

正如您在输出中看到的,SAS 已经删除了所有 id 值小于 5 的观测值。


下一个主题格式化数据集