【问题标题】:Referencing macro in SAS within a rsubmit在 rsubmit 中引用 SAS 中的宏
【发布时间】:2015-05-11 00:05:56
【问题描述】:

我不知道为什么我无法在 rsubmit 调用中调用宏。

例如,我有代码:

%let var= year;
%put &var;            /* this works fine and prints "year" to the log  */
    rsubmit;
    proc sql;
        %put &var;    /* this does not work   */

第二个实例抛出警告WARNING: Apparent symbolic reference VAR not resolved. 为什么我不能在 rsubmit 代码中引用宏,我该如何适应这种情况?

作为参考,如果我在 rsubmit 中更改宏的创建,它可以正常工作 - 例如:

rsubmit;
proc sql;
   %let var= year;
   %put &var;               /* prints "year" as expected  */

但是,我希望在我的代码开头分配宏 - 并且还希望了解为什么以前不起作用。

【问题讨论】:

  • 如果您只是想在代码开头分配宏变量,您可以简单地从 rsubmit; <assignments> endrsubmit; 块开始,而无需将它们从本地传递到远程。否则,如果您需要在两个系统上都使用它们,那么请选择 Adam 的答案。

标签: sas


【解决方案1】:

这是因为您是在本地而不是在远程系统上定义它,所以它们是分开保存的。如果您想在本地运行时在远程创建/更新值,反之亦然,您可以分别使用 %syslput 和 %sysrput 语句。 http://support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/default/viewer.htm#a001221974.htm

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-26
    • 2016-11-06
    • 1970-01-01
    • 1970-01-01
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多