sas字符串在代码中的转换
我正在尝试使用SAS 9.4数据哈希obj。 这里有一些代码:sas字符串在代码中的转换,sas,sas-macro,Sas,Sas Macro,我正在尝试使用SAS 9.4数据哈希obj。 这里有一些代码: data joined; if 0 then set data1 data2; if _n_=1 then do; declare hash merger (dataset:'data2'); merger.definekey('some_key'); merger.definedata('col1','col2'); merger.definedone
data joined;
if 0 then set data1 data2;
if _n_=1 then do;
declare hash merger (dataset:'data2');
merger.definekey('some_key');
merger.definedata('col1','col2');
merger.definedone();
end;
set data1;
if merger.find(key:some_key)=0 then output;
run;
现在我想让它像宏一样播放:
%let list=2 3 4 5;
data joined;
if 0 then set data1 data_&i.;
if _n_=1 then do;
declare hash merger (dataset:'data_&i.');
merger.definekey('some_key');
merger.definedata('col1','col2');
merger.definedone();
end;
set data1;
if merger.find(key:some_key)=0 then output;
run;
但正如我所看到的,问题是这里引用了一些名言:
dataset:'data_&i.'
如何将此字符串转换为sas代码?
在python中,我可以执行类似str(data[i])的smth 使用双引号,宏变量将解析
declare hash merger (dataset:"data_&i.");
顺便说一句,你实际上不必在宏中这样做;您可以简单地在普通的数据步代码中将散列参数构造为字符串。事实上,这只是一个示例,实际程序更庞大。我想知道将sas宏变量发送到文本的方法。但ofc感谢您的关注。)