【问题标题】:SAS - How to run a array over multiple filesSAS - 如何在多个文件上运行数组
【发布时间】:2017-12-04 17:10:06
【问题描述】:

我有多个具有相同命名约定和相同数据格式的文件:Dsn1 到 Dsn7。

目前我正在运行以下内容

data temp (drop=i); set Dsn1;
array S_(12) S_AUD--S_USD;
do i=1 to 12;
S_[i] = log(S_{i}); 
end;

我无法弄清楚如何对所有文件执行此操作?

任何帮助表示赞赏

【问题讨论】:

    标签: arrays macros sas


    【解决方案1】:

    这取决于。您可以创建一个宏并为每个文件运行它。或者您可以一次为所有文件运行它并创建一个“大”文件。

    data temp (drop=i); 
         set Dsn1 - dsn7;
         array S_(12) S_AUD--S_USD;
         do i=1 to 12;
               S_[i] = log(S_{i}); 
         end;
    run;
    

    宏观方法:

    %macro loop (num_datasets=);
      %do i=1 %to &num_datasets;
    
     data temp&i. (drop=i); 
     set Dsn&i;
     array S_(12) S_AUD--S_USD;
     do i=1 to 12;
           S_[i] = log(S_{i}); 
     end;
     run;
    
    %end;
    
     %mend;
    
    %loop(num_datasets=5);
    

    文档中的宏附录有几个如何工作的示例:

    https://communities.sas.com/t5/SAS-Communities-Library/SAS-9-4-Macro-Language-Reference-Has-a-New-Appendix/ta-p/291716

    【讨论】:

    • 感谢您的帮助。我需要为每个文件运行它(它们需要分开)
    猜你喜欢
    • 2021-11-28
    • 2015-07-28
    • 2020-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多