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 @