在用户定义模块中的 SAS 系统的 proc IML 中,我希望能够通过将向量的名称作为参数来访问向量中的数据。
例如,在下面的代码中,名为“test”的模块构建了两个字符串“x_vec1”和“x_vec2”,但不打印这两个向量的内容,而是打印它们的名称(我认为提交块产生相同的结果)。
这个概念很容易使用宏通过在宏中调用 IML 来实现,但我想纯粹在 IML 中完成它以保持代码“干净”。虽然 IML 非常适合统计工作,但我需要的不仅仅是这些——我需要通过一个类似于宏变量的概念来保持我的代码简短,该宏变量可以在运行时在函数中解析。
proc iml;
start test(ep);
str = concat("x_",ep);
print str;
finish;
x_vec1 = J(10,1,34);
x_vec2 = J(10,1,67);
run test("vec1");
run test("vec2");
quit;