【问题标题】:SAS - Automate Change in Data Source to Provide ReportSAS - 自动更改数据源以提供报告
【发布时间】:2014-05-05 16:20:17
【问题描述】:

我目前有一个程序可以根据一些内部参数生成完整的报告(数据操作、分析、格式化、Excel 输出)。

我想构建一个工具或宏来迭代 6 个数据集,并为每个数据集独立提供报告。

以流程方式:

输入数据 -> 程序操作 -> 报告生成输出

我需要能够即时更改输入数据集。

任何帮助将不胜感激:

仅供参考 - 我尝试过提示,但“数据源”选项不允许我选择新的数据源。

【问题讨论】:

  • 您是否尝试过为此编写宏?如果是这样,你能分享一下你到目前为止所做的尝试吗
  • 我已经尝试修改,本教程:goo.gl/130rME
  • 我以前没有使用过 Dictionary Tables 或 Memname。我的数据集位于一个目录中,但与许多其他数据文件并列。
  • 你的问题现在很笼统。如果您想要更具体的内容,则需要使其更具体。
  • 数据源选项?您可能需要提供该数据源的位置和内容。它可以很容易地用一个宏变量来修复。

标签: sql sas sas-macro proc-sql


【解决方案1】:

编写此类内容的一般结构是使数据源名称或连接详细信息成为宏参数。这假设您的其他步骤都是相同的(或都具有类似的参数化)。类似的东西

%macro run_reports(datasource=);

proc freq data=&datasource.;
run;

%mend run_reports;

%run_reports(datasource=mydata1);
%run_reports(datasource=mydata2);

显然,内部的复杂性远不止于此,但这是基本思想。如果有这样做的逻辑方法,您也可以以编程方式生成宏调用。

【讨论】:

  • 好的,这正是我想去的方向。
  • 在 %macro run_reports(datasource=); - (datasource=) 是数据位置的路径还是有序表中的数据文件名。
  • 这取决于您的需求。在我的情况下,它是一个数据集名称,但如果您使用的是 .dat 文件或其他文件,则可以使用文件名/路径。
  • 谢谢乔,我认为我的主要问题是我不知道数据集需要采用什么结构。例如,如果我将数据文件放在一个文件中就足够了宏来遍历它们。或者我是否需要在有序图表中包含每个数据文件的名称。
  • 您没有提供足够的信息来回答这个问题。您几乎可以通过多种方式做到这一点。一个文件中的所有数据,具有分类变量和/或逻辑来区分;单独数据集中的所有数据,每个数据都适当命名;许多不同地方的数据。所有这些都可以很容易地使用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-14
  • 1970-01-01
相关资源
最近更新 更多