开发手册 欢迎您!
软件开发者资料库

SAS - 子集数据集

SAS子集数据集 - 从简单和简单的步骤学习SAS,从基本到高级概念,包括概述,环境,用户界面,程序结构,基本语法,数据集,变量,字符串,数组,数字函数,运算符,循环,决策,功能,输入方法,宏,日期和时间,SQL,输出传递系统,模拟,直方图,图表,散点图,箱线图,算术平均值,标准差,频率分布,交叉制表,T检验,方差,线性回归, Bland-Altman分析,卡方,Fishers精确检验,单向Anova,重复测量分析,假设检验。

子集SAS数据集意味着通过选择较少数量的变量或较少数量的观察值或两者来提取数据集的一部分.虽然通过使用 KEEP DROP 语句完成变量的子集化,但观察的子设置是使用 DELETE 语句完成的.

此外,来自子集化操作的结果数据保存在新数据集中,可用于进一步分析.子设置主要用于分析数据集的一部分而不使用可能与分析无关的那些变量或观察值.

子集变量

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

语法

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

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

以下是所用参数的说明及减号;

  • var1和var2 是数据集中需要保留或删除的变量名.


示例

考虑以下包含组织员工详细信息的SAS数据集.如果我们只对从数据集中获取Name和Department值感兴趣,那么我们可以使用下面的代码.

DATA Employee;    INPUT empid ename $ salary DEPT $ ; DATALINES; 1 Rick 623.3 IT  2 Dan 515.2 OPS3 Mike 611.5 IT 4 Ryan 729.1    HR 5 Gary 843.25   FIN 6 Tusar 578.6   IT 7 Pranab 632.8  OPS8 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 OPS3 Mike 611.5 IT 4 Ryan 729.1    HR 5 Gary 843.25   FIN 6 Tusar 578.6   IT 7 Pranab 632.8  OPS8 Rasmi 722.5   FIN ;RUN;DATA OnlyDept;   SET Employee;   DROP empid salary;   RUN;   PROC PRINT DATA = OnlyDept; RUN;

子集观察

在这种方法中,我们只从整个数据集中提取少量观察结果.

语法

我们使用PROC FREQ来跟踪为新数据集选择的观察结果.

sub的语法设置观察结果为 :

IF Var Condition THEN DELETE;

以下是所用参数的说明及减号;

  • Var 是基于其值使用指定条件删除观察值的变量的名称.

示例

考虑包含组织员工详细信息的以下SAS数据集.如果我们只对获得薪水大于700的员工的数据感兴趣,那么我们使用以下代码.

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

执行上述代码后,我们得到以下输出.

subsetting2