Могу ли я получить SAS для объединения и всей папки наборов данных? - PullRequest
0 голосов
/ 12 апреля 2019

Я работаю с данными, которые, кажется, разбиты на почти произвольные множества из года в год.Я хотел бы начать с объединения всех файлов .sas7bdat в одну библиотеку.Как мне поступить об этом?

В качестве альтернативы, если я знаю все возможные имена, которым могут быть назначены файлы в библиотеке (но многие из них потенциально отсутствуют в любой данной библиотеке), как я могу заставить SAS игнорироватьнедостающие файлы?Например, скажем, что я знаю, что все файлы .sas7bdat в моей библиотеке имеют одно из имен: «set01», «set02», «set03» или «set04».Если в определенной библиотеке ("L") отсутствует одна из них, то шаг данных:

DATA temp;
  SET L.set01 L.set02 L.set03 L.set04;
  RUN;

приведет к ошибке.Предполагая, что я знаю, что хотя бы один из них существует, есть ли опция, которая скажет SAS игнорировать пропущенные?

(я понимаю, что это два совершенно разных вопроса, но любой из них решит мою непосредственную проблему.)

1 Ответ

1 голос
/ 12 апреля 2019

в SAS есть простой способ для SAS автоматически выбирать наборы данных, которые начинаются с некоторого общего имени, вы можете использовать следующую инструкцию:

data temp;
 set L.set0: ; /*It will search for all datasets that start with set0 and will set only those which are available*/
run;

Отвечает ли он на ваш запрос?

Второй подход

libname L "Y:\Test Data";

proc sql;
  select strip("L."||memname) into :DSNAME separated by ' '
    from dictionary.tables
    where libname='L';
quit;

/* Main final DS*/
data want;
  set &DSNAME;
run;

Он извлечет все имена наборов данных в каталоге L и создаст макропеременную DSNAME, такую ​​как: L.set01 L.oth02 и т. Д., Общие имена здесь не будут иметь значения ..

...