通过将它们作为列表传递来组合 sas 数据集列表

combine list of sas datasets by passing them as list

我正在尝试合并两个 sas 数据集。如何创建 file_list 并将其与 libname.&file_list 一起用于 set 语句,而不是如下所示单独调用它们。

 libname my_data 'path_to_folder';

%let file_list = sas_file1 sas_file2;

data my_data.all;
set my_data.sas_file1;
set my_data.sas_file2;
run;

我也可以做这样的事情

  %let file_list = my_data.sas_file1 my_data.sas_file2;
    
    data my_data.all;
    set &file_list;
    run;

但我想要一个单独的数据集列表,无论 libname 是什么我都可以使用。

%macro prefix_list(prefix, list);
  %do _nr = 1 %to %sysfunc(countw(&list));
    &prefix.%scan(&list, &_nr)
  %end;
%mend;

%let file_list = sas_file1 sas_file2;

data my_data.all;
  set %prefix_list(my_data., &file_list);
run;