1
我写了一个简单的宏,并将其应用于一个简单的SAS数据步骤,以说明我正在查看输出的问题。如何输出SAS宏变量值
宏:
%macro test_func(var=);
%put &var;
%mend;
数据步:
data test_data_step;
value = 0;
%test_func(var = value);
run;
我的问题是,我看到输出只是字符串value
,而不是他的名字等于变量保存的值串。
我相信我对SAS为什么这样做有一个模糊的理解,但我不知道如何让它达到期望的值(即在这种情况下为0
)。那么,我将如何能够实现这一功能?
谢谢!
+1。谢谢@Joe!像往常一样,你的答案很简单,但很清楚,很有教育意义 - 我每次都会学到一些东西!但有一个问题:我对输出变量值的主要兴趣是解决宏问题。通过这种方法,我会在我正在排除故障的宏中有多个非宏语句,从而导致其他错误。所以我仍然想知道如何继续。我可以在这里问另一个问题,但我想至少尝试自己弄清楚。你会推荐什么?再次感谢! – Rookatu
这真的取决于你在做什么。但最终,宏语言('%put'等)不能访问实际值;所以你必须弄清楚如何以不会导致问题的方式将调试语句放在那里。我经常做的一件事就是在主代码体中包含调试代码(不管它实际上是否在宏中),然后包含检查变量'&debug'的'%if'块 - 如果'&debug = Y'则运行调试代码。 – Joe