×

SAS 教程

SAS 概述SAS 程序结构SAS 基本语法SAS 数据集SAS 变量SAS 字符串SAS 数组SAS 数字格式SAS 运算符SAS 循环SAS 决策SAS 功能SAS Input 输入方法SAS 宏SAS Date Times 日期时间

SAS 数据集操作

SAS 写入数据集SAS 连接数据集SAS 合并数据集SAS 子集数据集SAS 数据集排序SAS 格式数据集SAS SQLSAS ODSSAS 模拟SAS 读取原始数据

SAS 数据展示

SAS 直方图SAS 条形图SAS 饼图SAS 散点图SAS 箱线图

SAS 基本统计程序

SAS 线性回归SAS Bland Altman分析SAS 卡方SAS Fisher精确测试SAS 算术平均值SAS 重复测量分析SAS 标准偏差SAS 单因素方差分析SAS 频率分布SAS 假设检验SAS 交叉表格SAS T检验SAS 相关性分析

SAS 相关资源

SAS 讨论SAS 有用的资源SAS 相关问题与解答

SAS 子集数据集


设置SAS数据集的子设置意味着通过选择较少数量的变量或较少数量的观测值或同时选择较少数量的观测值来提取数据集的一部分。 通过使用KEEP和DROP语句完成变量的子设置,使用DELETE语句完成观察的子设置。 此外,来自子设置操作的结果数据保存在可用于进一步分析的新数据集中。 子设置主要用于分析数据集的一部分而不使用那些可能与分析不相关的变量或观察的目的。

子设置变量

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

语法

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

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

以下是所使用的参数的说明:

  • var1var2是数据集中需要保留或删除的变量名

考虑包含组织的员工详细信息的以下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 ;

以下是所使用的参数的说明:

  • Var是变量的名称,根据它的值,将使用指定的条件删除观察值。

考虑包含组织的员工详细信息的以下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; 

当执行上面的代码,我们可以得到下面的输出。


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)