2017-02-18 66 views
0

我需要重复从int1到int10的下面的过程。什么是对此进行编码的有效方式?如何使用SAS中的循环简化以下语句?

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

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

在循环中使用宏变量。 %%i = 1%到%10; 按时间排序的Proc排序数据= sourceh.average_metric_Jan2009_int &i.; ; 跑; 结束; – abhiieor

回答

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

取决于你在做什么你已经整理所有数据集中后,可能更容易将它们串联一起,然后对它们进行排序。

 
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 ;