0

我有一个包含许多 .xls 文件的文件夹。文件的名称可以是随机的。确切的数字是未知的。如何通过仅知道文件夹的目录将这些数据集导入 SAS?我将不得不迭代......我已经使用 Java 完成了这个......我很好奇 SAS 可以做到这一点吗?

4

1 回答 1

1

一旦你在文件夹中获得了一个 excel 文件列表(使用上面建议的技术),你可以将它放入一个宏变量中,并在一个宏中循环遍历它们,将它们一个一个地分配给一个库:

%DO i=1 %TO %SYSFUNC(COUNTW(&list_of_files));
   LIBNAME xlibr EXCEL "&your_folder\%scan(&list_of_files,&i)";

   DATA imported_file_&i;
      SET xlibr.'Sheet1$'n;
   RUN;

%END;

如果每个文件中的名称和工作表数量可能不同,那么您需要再添加一个嵌套循环来遍历每个文件的所有工作表。像这样的东西:

%DO i=1 %TO %SYSFUNC(COUNTW(&list_of_files));
   LIBNAME xlibr EXCEL "&your_folder\%scan(&list_of_files,&i)";

   PROC SQL noprint;
     SELECT memname into :sheets separated by ' '
     FROM sashelp.vtable
     WHERE libname="XLIBR";
   QUIT;

   %DO j=1 %TO %SYSFUNC(COUNTW(&sheets));   
      DATA imported_file_&i&j;
         SET xlibr."%scan(&sheets,&j)$"n;
      RUN;
   %END;
%END;
于 2013-12-01T08:51:27.440 回答