Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

sas string converting in code

Tags:

sas

sas-macro

I'm trying to use SAS 9.4 data hash obj. Some code here:

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;

Now i want to make it macro played like:

%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;

But as i see the problem is quotes around here:

dataset:'data_&i.'

How to convert this string for sas code? in python i can do smth like str(data[i]);

like image 664
renardeinside Avatar asked Mar 09 '26 23:03

renardeinside


1 Answers

Use double quotes and the macro variable will resolve.

declare hash merger (dataset:"data_&i.");
like image 174
Laurent de Walick Avatar answered Mar 12 '26 13:03

Laurent de Walick



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!