【问题标题】:create a macro only with macro variables creation (%let) in sas仅在 sas 中使用宏变量创建 (%let) 创建宏
【发布时间】:2018-06-13 00:30:03
【问题描述】:

您好,我试图创建一个只包含宏变量创建的宏,但它失败了。这是一个例子:

%macro createvariable; 
    %let a = 5;
    %let b = 6;
%mend createvariable;
%createvariable; 

data test; 
    c = &a + &b;
run;

但它会作为:

%macro createvariable; 
    %let a = 5;
    %let b = 6;
data test; 
    c = &a + &b;
run;
%mend createvariable;
%createvariable; 

所以我想知道 SAS 是否无法创建一个只在其中创建宏变量的宏?或者有办法解决这个问题。谢谢。

【问题讨论】:

  • 我认为问题在于在宏中创建的宏变量是该宏的本地变量。如果要在宏内创建宏变量并允许在该宏外访问它们,则必须将它们声明为全局宏变量。
  • 格栅!感谢您的解决方案。我真的学到了。
  • 有人知道为什么这个问题被否决了吗?

标签: macros sas


【解决方案1】:

试试

%macro createvariable; 
%global a b;
    %let a = 5;
    %let b = 6;
%mend createvariable;
%createvariable; 

data test; 
    c = &a + &b;
run;

【讨论】:

  • 为什么需要 %GLOBAL 语句的描述会改进这个答案。
猜你喜欢
  • 1970-01-01
  • 2013-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多