sas在代码中转换字符串

时间:2014-05-21 05:36:42

标签: 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();
    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

1 个答案:

答案 0 :(得分:3)

使用双引号,宏变量将解析。

declare hash merger (dataset:"data_&i.");