Sas-sort-data-sets

提供:Dev Guides
移動先:案内検索

SAS-データセットのソート

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

構文

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

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

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

  • *変数名*は、ソートが行われる列名です。
  • *元のデータセット*は、ソートされるデータセット名です。
  • *ソート済みデータセット*は、ソート後のデータセット名です。

組織の従業員の詳細を含む次の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 ;

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

sort1

逆ソート

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

以下のコードでは、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 ;

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

sort2

複数の変数の並べ替え

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 ;

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

sort3