SAS-データセットの並べ替え

SASのデータセットは、そこに存在する任意の変数で並べ替えることができます。これは、データ分析と、マージなどの他のオプションの実行の両方に役立ちます。並べ替えは、単一の変数だけでなく、複数の変数でも発生する可能性があります。SASデータセットでソートを実行するために使用されるSASプロシージャの名前はPROC SORT。並べ替え後の結果は新しいデータセットに保存され、元のデータセットは変更されません。

構文

SASのデータセットでのソート操作の基本的な構文は次のとおりです。

PROC SORT DATA = original dataset OUT = Sorted dataset;
   BY variable name;

以下は、使用されるパラメーターの説明です-

  • variable name ソートが行われる列名です。

  • Original dataset ソートするデータセット名です。

  • Sorted dataset ソート後のデータセット名です。

組織の従業員の詳細を含む次のSASデータセットについて考えてみましょう。以下のコードを使用して、給与に関するデータセットを並べ替えることができます。

DATA Employee; 
   INPUT empid name $ salary DEPT $ ; 
DATALINES; 
1 Rick 623.3	IT 		 
2 Dan 515.2 	OPS	
3 Mike 611.5 	IT 	
4 Ryan 729.1    HR 
5 Gary 843.25   FIN 
6 Tusar 578.6   IT 
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN 
;
RUN;

PROC SORT DATA = Employee OUT = Sorted_sal ;
   BY salary;
RUN ;
 
PROC PRINT DATA = Sorted_sal;
RUN ;

上記のコードを実行すると、次の出力が得られます。

逆ソート

デフォルトの並べ替えオプションは昇順です。つまり、並べ替えられた変数の低い値から高い値の順に観測値が配置されます。ただし、並べ替えを昇順で実行することもできます。

以下のコードでは、DESCENDINGステートメントを使用して逆ソートを実行しています。

DATA Employee; 
   INPUT empid name $ salary DEPT $ ; 
DATALINES; 
1 Rick 623.3	IT 		 
2 Dan 515.2 	OPS	
3 Mike 611.5 	IT 	
4 Ryan 729.1    HR 
5 Gary 843.25   FIN 
6 Tusar 578.6   IT 
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN 
;
RUN;

PROC SORT DATA = Employee OUT = Sorted_sal_reverse ;
   BY DESCENDING salary;
RUN ;
 
PROC PRINT DATA = Sorted_sal_reverse;
RUN ;

上記のコードを実行すると、次の出力が得られます。

複数の変数の並べ替え

BYステートメントで使用することにより、複数の変数に並べ替えを適用できます。変数は、左から右に優先順位を付けて並べ替えられます。

以下のコードでは、データセットは最初に変数部門名でソートされ、次に変数名給与でソートされます。

DATA Employee; 
   INPUT empid name $ salary DEPT $ ; 
DATALINES; 
1 Rick 623.3	IT 		 
2 Dan 515.2 	OPS	
3 Mike 611.5 	IT 	
4 Ryan 729.1    HR 
5 Gary 843.25   FIN 
6 Tusar 578.6   IT 
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN 
;
RUN;

PROC SORT DATA = Employee OUT = Sorted_dept_sal ;
   BY salary DEPT;
RUN ;
 
PROC PRINT DATA = Sorted_dept_sal;
RUN ;

上記のコードを実行すると、次の出力が得られます。