【发布时间】:2015-01-09 08:41:37
【问题描述】:
在 SAS/IML 中,如果只有带有其名称的宏可用,是否可以更改变量?在左侧使用 symget 会产生错误:
proc iml;
variable = 0;
call symput ('macVar', 'variable');
/* &macVar = 1;*/
symget('macVar') = 1;
print variable;
quit;
ERROR 180-322: Statement is not valid or it is used out of proper order.
&-sign 有效,但代码处于 do-loop 中,必须使用 symget。
问题源于编写一个函数的任务,该函数接受可变数量的参数并在几个 do-loop 中处理它们。它与以下问题有关:
SAS IML use of Mattrib with Macro (symget) in a loop
SAS IML pass reference to variable defined in macro
在其他语言(R、C++、Java、Matlab 等)中,任务是在抽象的帮助下解决的。
想法?
已解决
非常感谢。 有用的文章。
【问题讨论】:
标签: macros module variable-assignment sas-iml