2

我想通过单个查询运行多个数据集(格式相同),并为每个输入的数据集生成输出。

SAS Enterprise Guide 中有可能吗?

4

3 回答 3

1

对于 EG 中的大多数任务,您可以右键单击它们并选择“选择输入数据...”,然后更改输入数据。我假设您正在谈论的过滤和查询任务没有此选项。

我能想到的重用查询的唯一方法是深入研究 SAS 代码。如果您对此感到满意,这里有一个建议(这是在 EG4.1 中,我认为以后的版本类似):

  1. 使用过滤器和查询任务从您的第一个数据集创建所需的查询。
  2. 保存并关闭过滤器和查询对话框。
  3. 右键单击查询任务并选择“添加为代码模板”。一个新的代码对象将出现在项目设计器中。当您打开它时,您将看到由过滤和查询任务构建的 SAS 代码。
  4. 在这里,将输入数据(它将在fromSQL 代码的子句中)更改为不同的输入数据集,并更改输出数据的名称(请参阅 参考资料 create table xxx as)。您可能还需要更改输出数据的名称 %_eg_conditional_dropds(xxx)或类似名称 - 这部分将删除与您的输出数据同名的数据集(如果存在)。

这有点费力 - 如果你做了很多这样的事情,我建议你跳进 SAS 编码,因为有很多方法可以做你所描述的事情,这比破解 EG 任务代码要容易得多:)

于 2011-04-04T12:55:25.557 回答
1

编写 sas 代码以循环遍历在每个数据集上执行 sql 的数据集,并使用唯一标识符命名结果。不好玩的点和点击世界。

于 2011-04-05T15:22:31.600 回答
0

不太确定一次需要运行多少个数据集,但也许您可以使用动态提示?

http://www.google.com/url?sa=t&source=web&cd=1&ved=0CBUQFjAA&url=http%3A%2F%2Fsupport.sas.com%2Fresources%2Fpapers%2Fproceedings10%2F041-2010.pdf&ei=khmjTeClJ4iCsQPV7PX5DA&usg=AFQjCNFotS3cbwYl5kQl&sQUfqqKY3ndf= 3ItVrgWXlegBzvjt4-rGAQ

或者,通过将所有数据集附加在一起,从不同的角度对其进行攻击,然后在您到达报告端后拆分为不同的输出......

于 2011-04-11T15:12:01.077 回答