SAS Многократный импорт - PullRequest
0 голосов
/ 26 сентября 2018

Есть ли способ сделать импорт таблиц Excel в SAS несколькими процессами?Увидеть ниже.Я хочу сделать что-то вроде: * .xlsx.

    proc import datafile= "/gpfs_nonhsm02/corrections/users/id/CB10/IMPORT1/BANK053.xlsx" dbms=xlsx out=OUT.IMPORT_DS4 replace;
    sheet="CIG OPT OUT";
    getnames=YES;
run;


proc import datafile= "/gpfs_nonhsm02/corrections/users/id/CB10/IMPORT1/BANK111.xlsx" dbms=xlsx out=OUT.IMPORT_DS5 replace;
    sheet="CIG OPT OUT";
    getnames=YES;
run;



proc import datafile= "/gpfs_nonhsm02/corrections/users/id/CB10/IMPORT1/BANK121.xlsx" dbms=xlsx out=OUT.IMPORT_DS6 replace;
    sheet="CIG OPT OUT";
    getnames=YES;
run;

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Использование * возможно с импортом в txt, но для .xlsx вы можете использовать функцию макроса.Вот пример ниже, я надеюсь, что это поможет.Я создал два примера.

Пример I

/* function for the import of specific tables. */
%macro manytables(table, out);
    proc import datafile= "\gpfs_nonhsm02\corrections\users\id\CB10\IMPORT1\&table..xlsx" dbms=xlsx out=&out. replace;
        sheet="CIG OPT OUT";
        getnames=YES;
    run;
%mend;
%manytables(BANK053, IMPORT_DS4);
%manytables(BANK111, IMPORT_DS5);
%manytables(BANK121, IMPORT_DS6);

Пример II.Импортирует весь каталог в числовом порядке.

/* initializing the variable */
%let BD = 0;

/* function that read your tables */
%macro manytables(table, out);
    proc import datafile= "\gpfs_nonhsm02\corrections\users\id\CB10\IMPORT1\&table..xlsx" dbms=xlsx out=&out. replace;
        sheet="CIG OPT OUT";
        getnames=YES;
    run;
%mend;

/* function that performs the import of all tables */
%macro list;
    %do %while (&BD. < 111);
          %manytables(BANK&BD., IMPORT_DS&BD.);
         %let BD = %eval(&BD. + 1);
    %end;
%MEND list;
%list;

удачи !!!

0 голосов
/ 26 сентября 2018

Вместо этого используйте LIBNAME с PROC COPY.

libname myXLSX XLSX "/gpfs_nonhsm02/corrections/users/id/CB10/IMPORT1/BANK111.xlsx";

proc copy in=myXLSX out=WORK;
select <list of data sets here>;
run;
...