SAS Loop然后附加表格

时间:2017-07-02 23:35:17

标签: loops macros sas append

我正在创建多个名为" Taxes& i" (& i根据计数器I记录每个新数据集。) 我遇到的问题是在我追加表的循环之后。

当我使用此链接提供的代码时,https://support.sas.com/kb/48/810.html我在使用我现在拥有的代码并使用此代码进行流程时遇到问题。我想使用Work而不是abc。作为我的libname。对于我的计数器,我想使用& i和& n而不是'计数'而不是名称我想插入税。

当我使用& i代替8.我收到一个错误,指出无效的引用,当我将名称更改为税时,我得到18个错误,这些错误会有所不同。

%macro loop(list1, list2);

  %let n=%sysfunc(countw(&list1, %str('')));
  %do i=1 %to &n; 
    %let O_list1 = %scan(&list1, &i, %str('');
    %let O_list2 = %scan(&list2, &i, %str('');

data taxes&i;
   food=3*&O_List1;
   materials = 4*&O_List2;

%end;
%mend; 

run;

%list('1' '2', '3' '4') /*( this is "O_List1", "O_List2") */

1 个答案:

答案 0 :(得分:1)

我想你可以那样做。

更简单的方法是使用快捷方式列表,因为您声明它们都标有TAXES& I。

这会将Taxes1中的所有数据集附加到Taxes18。

data want;
  set abc.taxes1-abc.taxes18;
run;

这将附加以单词TAXES开头的所有数据集。

data want;
   set abc.taxes: ;
run;