设置SAS数据集的子设置意味着通过选择较少数量的变量或较少数量的观测值或同时选择较少数量的观测值来提取数据集的一部分。 通过使用KEEP和DROP语句完成变量的子设置,使用DELETE语句完成观察的子设置。 此外,来自子设置操作的结果数据保存在可用于进一步分析的新数据集中。 子设置主要用于分析数据集的一部分而不使用那些可能与分析不相关的变量或观察的目的。
在这种方法中,我们只从整个数据集中提取很少的变量。
SAS中子设置变量的基本语法是:
KEEP var1 var2 ... ; DROP var1 var2 ... ;
以下是所使用的参数的说明:
考虑包含组织的员工详细信息的以下SAS数据集。 如果我们只想从数据集中获取Name和Department值,那么我们可以使用下面的代码。
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;
当上面的代码执行时,我们得到以下输出。
通过删除不需要的变量可以获得相同的结果。 下面的代码说明了这一点。
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;
在这种方法中,我们只从整个数据集中提取少数观测值。
我们使用PROC FREQ来跟踪为新数据集选择的观测值。
子设置观测的语法是:
IF Var Condition THEN DELETE ;
以下是所使用的参数的说明:
考虑包含组织的员工详细信息的以下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;
当执行上面的代码,我们可以得到下面的输出。