SAS 循环然后追加表



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

当我使用此链接提供的代码时,https://support.sas.com/kb/48/810.html 我在获取我现在拥有的代码并使其与此代码一起流动时遇到问题。我想使用 Work 而不是 abc。作为我的自由名称。对于我的计数器,我想使用 &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") */

我想你可以这样做。

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

这会将税收 1 中的所有数据集追加到税收 18。

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

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

data want;
set abc.taxes: ;
run;

最新更新