Эффективно читать определенные строки входного файла в SAS - PullRequest
3 голосов
/ 04 февраля 2012

Мне нужно создать набор данных 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 может перейти непосредственно к определенным строкам?(Эффективность здесь очень важна, потому что у меня есть терабайты данных для обработки.)

1 Ответ

7 голосов
/ 04 февраля 2012

Я не знаю точную производительность, но вы можете попробовать Первые варианты Это позволит читать диапазон записей из середины файла.

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