在SAS中高效读取特定的输入文件行

时间:2012-02-04 03:18:17

标签: sas

我需要从二进制文件创建SAS数据集。我的代码是:

data test;
 infile 'D:\test\T201.bin' lrecl=12 recfm=f;
 input time IB4. v1 IB4. v2 IB4. ;
run;

有没有办法只读取输入文件中的特定行号?例如,假设我想保留行42000到44000.我可以添加:

if 42000<=_n_<=44000

但我想知道是否有更有效的方法来做到这一点。我的理解是这种方法会导致SAS读取所有行,但只保留输出数据集中指定的行。 SAS是否可以直接跳转到特定行? (效率在这里非常重要,因为我有数TB的数据需要处理。)

1 个答案:

答案 0 :(得分:7)

我不知道确切的表现,但你可以试试 第一和第二选择。它将允许从文件中间读取一系列记录。

data test;
infile 'D:\test\T201.bin' lrecl=12 recfm=f firstobs=42000 obs=44000;
input time IB4. v1 IB4. v2 IB4. ;
run;