我有一个带有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
。