我需要从二进制文件创建SAS数据集.我的代码是:
data test;
infile 'D:\test\T201.bin' lrecl=12 recfm=f;
input time IB4. v1 IB4. v2 IB4. ;
run;
Run Code Online (Sandbox Code Playgroud)
有没有办法只读取输入文件中的特定行号?例如,假设我想保留行42000到44000.我可以添加:
if 42000<=_n_<=44000
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有更有效的方法来做到这一点.我的理解是这种方法会导致SAS读取所有行,但只保留输出数据集中指定的行.有没有一种方法可以直接跳转到特定的行?(效率在这里非常重要,因为我有数TB的数据需要处理.)
我不知道确切的表现,但你可以试试firstobs和obs选项.它将允许从文件中间读取一系列记录.
data test;
infile 'D:\test\T201.bin' lrecl=12 recfm=f firstobs=42000 obs=44000;
input time IB4. v1 IB4. v2 IB4. ;
run;
Run Code Online (Sandbox Code Playgroud)