SAS学习——通过DATA步读取外部文本文件中的数据2

本文介绍了SAS在处理外部文本文件数据时的几种策略,包括missover、truncover和stopover选项的使用,如何在创建观测前测试条件,以及如何从单条或多条记录中创建观测。通过示例代码详细讲解了行保持符(@和@@)、行指针控制符(/和#n)的应用,帮助读者掌握SAS数据读取的高级技巧。

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

1、SAS在为所有变量读到数据之前就遇到了输入行的末尾的情况进行处理。

使用INFILE语句的选项,指定missover、truncover或stopover选项,从而改变sas默认行为。

默认情况下选项为flowover,input语句会读入下一条记录到输入缓冲区中,给当前PDV中未赋值的变量赋值。

missover:当原始数据记录中的最后一个或多个字段没有值,并且希望SAS将对应的变量置为缺失值。

truncover:当输入缓冲区的数据长度少于当前变量要求的长度时,则将当前输入缓冲区中的数据赋值给PDV中的该变量。所有未赋值的变量置为缺失值。

stopover:当input语句在当前输入行找不到所有数据值时,sas会停止执行该data步。


2、在创建SAS数据集的观测前先测试条件是否成立。

在只需要读入部分满足条件的数据时,可能需要先读入部分变量值,判断这些变量值是否满足条件。

数据文件sales.dat内容如下,其中包括员工ID、部门、销售额和上次修改时间,现在只需要读取部门TSG的员工并创建数据集。

ET001 TSG $10000    01JAN2012

ET002        $12000    01FEB2012

ET003 TSG $25000    02MAR2012

ET004 CSG $16000    07SEP2012

示例代码:

data saslib.sales;
     infile extfiles(sales);
     input Dept $7-9 @;
     if Dept='TSG';
     input Emp_ID $1-5 +5 Sales comma6. @20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值