Sas 简明教程

SAS - Subsetting Data Sets

SAS 数据集的子集是指通过选择较少的变量或较少的观测值,或者同时选择两者,来提取数据集的一部分。虽然通过使用 KEEPDROP 语句对变量进行子集设置,但对观测值进行子集设置是通过使用 DELETE 语句。

而且,子集设置操作产生的结果数据保存在可以用于进一步分析的新数据集中。子集设置主要用于分析数据集中的一部分,而不使用那些与分析无关的变量或观测值。

Subsetting Variables

在此方法中,我们只从整个数据集中提取少数变量。

Syntax

SAS 中子集设置变量的基本语法是:

KEEP var1 var2 ... ;
DROP var1 var2 ... ;

以下是所用参数的描述 -

  1. var1 and var2 是需要保留或删除的数据集中的变量名。

Example

考虑下面的 SAS 数据集,其中包含组织的员工详细信息。如果我们仅对从数据集中获取姓名和部门值感兴趣,那么我们可以使用以下代码。

DATA Employee;
   INPUT empid ename $ salary DEPT $ ;
DATALINES;
1 Rick 623.3 	IT
2 Dan 515.2 	OPS
3 Mike 611.5 	IT
4 Ryan 729.1    HR
5 Gary 843.25   FIN
6 Tusar 578.6   IT
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN
;
RUN;
DATA OnlyDept;
   SET Employee;
   KEEP ename DEPT;
   RUN;
   PROC PRINT DATA = OnlyDept;
RUN;

当以上代码执行时,我们会得到以下输出:

subsetting1

可以通过删除不需要的变量来获得相同的结果。下面的代码对此进行了说明。

DATA Employee;
   INPUT empid ename $ salary DEPT $ ;
DATALINES;
1 Rick 623.3 	IT
2 Dan 515.2 	OPS
3 Mike 611.5 	IT
4 Ryan 729.1    HR
5 Gary 843.25   FIN
6 Tusar 578.6   IT
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN
;
RUN;
DATA OnlyDept;
   SET Employee;
   DROP empid salary;
   RUN;
   PROC PRINT DATA = OnlyDept;
RUN;

Subsetting Observations

在此方法中,我们只从整个数据集中提取少数观测值。

Syntax

我们使用 PROC FREQ,它跟踪为新数据集所选的观测值。

子集设置观测值语法是:

IF Var Condition THEN DELETE ;

以下是所用参数的描述 -

  1. Var 是变量的名称,观测值将根据其值通过指定条件删除。

Example

考虑下面的 SAS 数据集,其中包含组织的员工详细信息。如果我们仅对获取工资高于 700 的员工数据感兴趣,则使用以下代码。

DATA Employee;
   INPUT empid name $ salary DEPT $ ;
DATALINES;
1 Rick 623.3	IT
2 Dan 515.2 	OPS
3 Mike 611.5 	IT
4 Ryan 729.1    HR
5 Gary 843.25   FIN
6 Tusar 578.6   IT
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN
;
RUN;
DATA OnlyDept;
   SET Employee;
   IF salary < 700 THEN DELETE;
   RUN;
   PROC PRINT DATA = OnlyDept;
RUN;

当以上代码执行时,我们会得到以下输出:

subsetting2