评估包含宏参考的字符串变量



我有一个带有DataSet名称的表,其中一些包含名称中的宏参考。

例如。monlonly_data_& yymm(yymm是最新月)

我想与此字符串保持Table,但随后具有一个新的变量,带有评估的DataSet名称。

例如。monlonly_data_& yymm,月_data_1612

我无法解决一种方法。如果我将数据集读取为宏变量,它将返回作为必需的名称,但是我无法在与未评估的参考的同一行上加入它。

我敢肯定这一定是可能的,而且可能很容易,但是我只是无法解决问题。

非常感谢

您可以使用resolve函数来执行此操作,例如

%let YYMM = 1601;
data mydata;
  dsname = 'Monthly_Data_&YYMM';
  dsname_resolved = resolve(dsname);
run;

n.b。在您的会话中,必须在resolve函数执行时使用正确值定义所有名称列中使用的宏变量。如果两个不同的数据集在其名称中使用了相同的宏变量,但是在不同时间进行了不同的值,则您需要重新定义宏变量并分别运行逻辑,甚至可能通过单独的数据步骤或call symput symget

最新更新