繁体   English   中英

如何输出SAS宏变量值

[英]How to output SAS Macro variable value

我编写了一个简单的宏,并将其应用于简单的SAS数据步骤中,以说明我在查看输出时遇到的问题。

宏:

%macro test_func(var=);
%put &var;
%mend;

数据步骤:

data test_data_step;
value = 0;
%test_func(var = value);
run;

我的问题是,我看到的输出只是字符串value而不是名称等于该字符串的变量中保存的值。

我相信我对SAS为什么要这样做的理解不明确,但是我不知道如何获得期望值(在这种情况下为0 )。 那么我将如何实现该功能?

谢谢!

问题在于%putput之间的差异。

您是否要查看宏变量&var的内容? 然后使用%put(&var)

但是,如果要查看名称存储在&var中的SAS数据步骤变量的内容,请使用put(&var)

因此,我将这样重写:

%macro test_func(var=);
put &var.;
%mend;

现在这可以按您期望的那样工作:

data test_data_step;
  value = 0;
  %test_func(var = value)
run;

(请注意另一个较小的更改-删除%test_func之后的; ,这是不必要的,虽然通常没什么大不了,但是如果您习惯将其放在那里,则可能会引起问题。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM