【发布时间】:2018-11-17 09:56:43
【问题描述】:
我尝试通过搜索论坛寻找答案,但没有找到解决方案: https://stackoverflow.com/search?page=3&tab=Relevance&q=listing%20over%20datasets%20sas
/* make all letters lower case */
data steg1;
set steg0b;
email = lowcase(email);
run;
/* stripping down email column */
data steg2;
set steg1;
email = strip(email);
run;
我想在某个库中的所有数据集上运行某个代码(很长,我发布了其中的一部分)(可能循环是正确的方法)。该库是一个包含所有工作表的 excel 文件(需要在数据步骤中以不同的方式进行转换)。所需的输出是与源位于同一目录中的另一个文件,其合适的名称为“cleaned.xlsx”或类似名称。
我分享一些代码:
%let filepath=
\\mynetworkpath\;
%let filname=
tobecleaned.xlsx;
%let file=
&filepath.\&filename;
libname epostimp xlsx "&file.";
这让我得到了一个名为 epostimp 的图书馆,在那里我可以找到不同的床单,我们称之为挪威、丹麦、瑞典。
我现在想为三个数据集执行我的数据步。
此后,我想将它们导出到同一个 Excel 文件,我想将其命名为 clean.xlsx(在 clean.xlsx 中,我想查看挪威、丹麦、瑞典的表格 - 就像在原始文件中一样)。
问题将是:
- 如何使用我的数据步进行循环
- 如何将完成数据集重命名为正确的数据集;挪威、丹麦、瑞典
- 如何将它们导出到一个名为 clean.xlsx 的 excel 文件中
很高兴听到一些关于如何制作它的建议。
【问题讨论】:
-
谢谢。希望有人知道一次在所有数据集上运行程序的解决方案。
-
您是否尝试过制作一个复制/修改一张纸的宏?然后,您可以使用 proc 内容或其他工具将工作表列表获取到数据集中,并使用
call execute()为每个工作表生成一个宏调用。 -
谢谢!我会试试你的建议!
标签: loops sas dataset export-to-excel sas-macro