SAS 选取部分观测

本文详细介绍了在SAS中如何选取部分观测,包括使用DELETE语句删除满足条件的观测,利用取子集的IF语句接受满足条件的观测,使用OUTPUT语句建立多个数据集,以及操作所选取观测的各种方法,如IF-THEN/ELSE语句、赋值语句、DO语句、嵌套IF-THEN/ELSE语句和SELECT语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SAS  对部分观测得处理

在建立新数据集时,有以下两种方式可以从已经存在的数据集中选取观测到新数据集中。

  ·通过删除不满足条件的观测来保留想要的观测。

  ·仅接受满足条件的观测。

条件可以由IF语句、WHERE语句或数据集选项WHERE=中的条件表达式来指定。WHERE语句和数据集选项WHERE=可以用在DATA步 和PROC步中,两者的使用方法基本相同。

1.使用DELETE语句删除满足条件的观测

DATA步中可以结合使用IF语句和DELETE语句来删除满足条件 的观测,其基本形式如下:

IF  条件表达式  THEN  DELETE;

在该过程中,SAS首先判断条件表达式是否为真。如果为真,则执 行THEN从句中的DELTET语句。DELETE语句会让SAS立即返回DATA 步的开始处读取下一条观测,当前观测不会写入输出数据集中。注意, DELETE语句不会删除输入数据集中的观测。

在数据集saslib.contact中选取地址信息(Address)不为缺失 值的观测建立新数据集work.contact_address。

已经存在的数据集saslib.contact中包含客户联系信息,内容如图所示。


DATA步中IF语句用于判断Address信息是否为缺失值,DELETE语句则可将Address为缺失值的观测删除。代码如下:

data  work.contact_address;
set  saslib.contact;
if address  =  ""   then  delete;
run;
proc  print  data=work.contact_address;
run;

PRINT过程打印的数据集work.contact_address如图3.5所示。其中不 包含编号(Customer_ID)为C004的客户信息,因为其地址信息为缺失 值。

2.使用取子集的IF语句接受满足条件的观测

选择满足条件的观测另一种方式是直接选取满足条件的观测,即使 用取子集的IF语句(Subsetting IF),其基本形式如下:

IF  条件表达式;

当条件表达式的值为真时,继续处理该观测;否则停止处理该观测 并返回DATA步开始处读取下一条观测,且该观测不会写入输出数据 集。该IF语句称为选取子集的IF语句,是因为所产生的输出数据集是原 始数据集的子集。

选取数据集saslib.contact中其职位(Position)为Manager的 观测,建立新数据集work.contact_manager,并打印新生成的数据集中的数据。

代码如下:

data  work.contact_manager;
set  saslib.contact;
if position  =  "Manager";
run;
proc  print  data=work.contact_manager  noobs;
run;

DELETE语句和取子集的IF语句得选择主要依据:

  ·由于DELETE语句和取子集的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值