Эффективное объединение многих наборов данных sas
У меня более 200 тыс. Небольших наборов данных с одинаковыми переменными (n <1000 и обычно п <100) что я хочу объединить в основной набор данных. Я попытался использовать макрос, который использует шаг данных, чтобы просто перебрать все новые наборы данных и объединить с мастером с помощью "установить мастер новый: ", но это занимает очень много времени. Кроме того, если я пытаюсь запустить одновременно, шаг выполнения данных вызова говорит о том, что у меня недостаточно памяти на огромном сервере. Для справки, все небольшие наборы данных вместе составляют чуть более 5 гигабайт. Любые предложения будут ценны. Вот что у меня так далеко:
%macro catDat(name, nbr) ;
/*call in new dataset */
data new ;
set libin.&name ;
run ;
/* reorder names */
proc sql noprint;
create table new as
select var1, var2, var3
from new;
quit;
%if &nbr = 1 %then %do ;
data master;
set new;
run;
%end;
%if &nbr > 1 %then %do ;
data master;
set master new ;
run;
%end ;
%mend;
/* concatenate datasets */
data runthis ;
set datasetNames ;
call execute('%catdat('||datasetname||','||_n_||')');
run;
Решено: увидеть Бобакомментарии ниже.