2017-02-18 47 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 ;