如何通过SAS中的循环简化以下语句?

时间:2017-02-18 16:41:54

标签: sas

我需要重复从int1到int10的下面的proc排序。什么是编码的有效方法?

Proc sort data=sourceh.average_metric_Jan2009_int1;
by time rank;
run;

Proc sort data=sourceh.average_metric_Jan2009_int2;
by time rank;
run;

2 个答案:

答案 0 :(得分:2)

您可以在宏程序中使用%do循环:

%macro multisort();

%do i = 1 %to 10;
  proc sort data = sourceh.average_metric_jan2009_int&i;
  by time rank;
  run;
%end;

%mend;


%multisort()

答案 1 :(得分:1)

根据您对所有数据集进行排序后所执行的操作,将它们连接在一起可能会更容易,然后对它们进行排序。

data int1_to_10 ;
  set sourceh.average_metric_Jan2009_int1-sourceh.average_metric_Jan2009_int10 ;
run ;
proc sort data=int1_to_10 ;
  by time rank ;
run ;