SAS数据集的子设置详细图解

本文概述

  • 变量子设置
  • KEEP声明
  • DROP声明
  • 删除声明(观察的子设置)
在上一个主题中, 我们学习了将多个数据集串联为一个数据集。现在, 在本主题中, 我们将学习数据集的子设置。
在SAS编程语言中, 子设置是通过从数据集中选择特定数量的变量或观察值或两者来完成的。
数据集的子集意味着从数据集中提取并保存特定数量的变量或观测值, 或两者兼有。 SAS提供了三种用于子设置的语句:
  • KEEP声明
  • DROP声明
  • 删除声明
变量的子设置由KEEP语句和DROP语句完成, 而DELETE语句用于观测的子设置。
此外, 子设置操作的结果数据被组织在一个新的数据集中, 可用于进一步分析。子设置主要用于分析数据集的一部分, 而不使用那些可能与分析无关的变量或观察值。
变量子设置 变量的子设置包括从整个数据集中提取和插入特定数量的变量。
句法:
KEEP var1 var2 .......; DROP var1 var2 .......;

其中
Var1和var2:这些是数据集中需要保留或删除的变量。
KEEP声明 我们可以使用KEEP语句来保存所需变量的值。
例:
考虑下面的数据集, 其中包含学生的院校详细信息。如果我们只想使用数据集Student中的studyid和age值, 则可以使用KEEP语句。
DATA student; input studyid name$ sex$ age weight height$; datalines; 1 Akash m 22 64 1206 Jaya f 55 63 1252 Vinita f 34 68 1307 Kumar m 43 64 1304 Anita f 29 65 1535 Taufik m 21 45 1108 Boby m 32 71 1553 Ankita f 40 69 120; run; DATA only_two; SET student; KEEP studyid age; RUN; PROC PRINT DATA = http://www.srcmini.com/only_two; run;

在SAS Studio中执行以上代码:
SAS数据集的子设置详细图解

文章图片
输出
SAS数据集的子设置详细图解

文章图片
从输出中可以看到, SASonly保留KEEP语句下提到的变量的值。
DROP声明 我们可以使用DROP语句删除冗余变量的值。
例:
DATA student; input studyid name$ sex$ age weight height$; datalines; 1 Akash m 22 64 1206 Jaya f 55 63 1252 Vinita f 34 68 1307 Kumar m 43 64 1304 Anita f 29 65 1535 Taufik m 21 45 1108 Boby m 32 71 1553 Ankita f 40 69 120; run; DATA only_two; SET student; DR0P studyid age; RUN; PROC PRINT DATA = http://www.srcmini.com/only_two; run;

在SAS Studio中执行以上代码:
SAS数据集的子设置详细图解

文章图片
输出
SAS数据集的子设置详细图解

文章图片
从输出中可以看到, SAS删除了DROP语句中提到的两个变量(学习型和年龄型)。
删除声明(观察的子设置) 在观察的子设置中, 我们可以基于单个变量来操纵数据集。它根据给定条件提取变量的值。
句法:
IF var condition then DELETE;

其中
Var:这是变量的名称, 在此基础上, 观测值将被删除。
条件:这是布尔条件, 返回两个值, 一个为true, 另一个为false, 所有观察将被保存直到条件为true, 当条件为false时将删除所有观察。
例:
【SAS数据集的子设置详细图解】考虑下面的数据集, 其中包含学院的学生详细信息。如果我们仅要求id值小于5的学生的详细信息, 则可以使用以下代码:
DATA student; input studyid name$ sex$ age weight height$; datalines; 1 Akash m 22 64 1202 Jaya f 55 63 1253 Vinita f 34 68 1304 Kumar m 43 64 1305 Anita f 29 65 1536 Taufik m 21 45 1107 Boby m 32 71 1558 Ankita f 40 69 120; run; DATA only_two; SET student; if studyid < 5 then delete; RUN; PROC PRINT DATA = http://www.srcmini.com/only_two; run;

在SAS Studio中执行以上代码:
SAS数据集的子设置详细图解

文章图片
输出
SAS数据集的子设置详细图解

文章图片
从输出中可以看到, SAS删除了所有id值小于5的观测值。

    推荐阅读