我想用宏来标记SAS中的一些数组变量,以避免输入大量的代码行。我正在试图做的基本上是这样的:SAS:数组传递给宏
%macro LABEL_ARRAY(V);
%DO I = 1 %TO 4;
%let variablename=&V(&I);
array1[&I] = "Value of &variablename"
%END
%MEND LABEL_ARRAY;
因此,V是包含在阵列阵列1的位置对应的变量名的数组。我试图为每个数组和多个数组使用4个以上的变量,但这是基本思想。基本上发生了什么是array1 [&我],我想最终说第一个条目array1 [1],不使用我的值,而只是说&我,与& variablename同样的事情。
关于可能发生什么的任何建议?谢谢。
你可以尝试%let variablename =&&V(&I);看看这是否可行,但我怀疑不是。实际上将它改为:%let variablename = &&V&I;并且应该可以工作 – DCR
我对你想要的东西感到困惑。你可以展示一个使用你的宏的数据步骤吗?你说你想标注变量,但没有LABEL语句。如你所说,Array1 [&i]将解析为array1 [1]。 &Variablename不会解析为变量名称。您可能想看看VNAME功能。但是你不能使用数据步骤数组来分配变量标签。 – Quentin
@Quentin想必这样做会生成一堆标签语句,然后像'label%label_array(v);' – Joe