【问题标题】:SAS Loop then Append tablesSAS 循环然后附加表
【发布时间】:2017-07-02 23:35:17
【问题描述】:

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

当我使用此链接提供的代码时,https://support.sas.com/kb/48/810.html 我在获取我现在拥有的代码并使其与此代码一起流动时遇到问题。我想使用 Work 而不是 abc。作为我的库名。对于我的计数器,我想使用 &i 和 &n 而不是“计数”,而不是我想插入税款的名称。

当我使用 &i 而不是 8 时。我收到一个错误提示无效参考,当我将名称更改为 tax 时,我收到 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") */

【问题讨论】:

  • 您的代码没有附加,因此很难看出您是如何尝试按照此处的示例进行操作的。

标签: loops macros sas append


【解决方案1】:

我想你可以做到。

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

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

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

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

data want;
   set abc.taxes: ;
run;

【讨论】:

  • 哇!非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-30
  • 2021-09-20
  • 2017-03-18
  • 1970-01-01
  • 2012-09-24
  • 2021-07-14
  • 2019-08-22
相关资源
最近更新 更多