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