Sas: keep ステートメントで proc sort を使用する方法
SAS のKEEPステートメントとともにPROC SORTを使用すると、データセット内の行を並べ替え、並べ替え後に特定の列のみを保持できます。
これを行うには、次の基本構文を使用できます。
proc sort data=my_data out =sorted_data ( keep =var1 var2);
by var2;
run ;
この特定の例では、列var2の値に基づいてデータセット内の行を並べ替え、並べ替え後に列var1とvar2のみを保持します。
次の例は、この構文を実際に使用する方法を示しています。
例: SAS で KEEP ステートメントとともに PROC SORT を使用する
SAS に、さまざまなバスケットボール チームに関する情報を含む次のデータセットがあるとします。
/*create dataset*/
data my_data;
input team $points assists;
datalines ;
Mavs 113 22
Pacers 95 19
Cavs 100 34
Lakers 114 20
Heat 123 39
Kings 100 22
Raptors 105 11
Hawks 95 25
Magic 103 26
Spurs 119 29
;
run ;
/*view dataset*/
proc print data =my_data;
次の構文を使用して、ポイント列の値に基づいてデータセットの行を並べ替えることができます。
/*sort rows in dataset based on values in points column*/
proc sort data =my_data out =sorted_data;
by points;
run ;
/*view sorted dataset*/
proc print data =sorted_data;
行はポイント列の値に基づいて昇順で並べ替えられることに注意してください。
デフォルトでは、SAS はソート後にデータセット内のすべての列を保持します。
ただし、 KEEPステートメントを使用して、並べ替え後に保持する列を指定できます。
たとえば、次の構文を使用して、ポイント列の値に基づいてデータセット内の行を並べ替え、チーム列とポイント列のみを保持できます。
/*sort rows in dataset based on values in points column and only keep team and points*/
proc sort data=my_data out =sorted_data ( keep =team points);
by points;
run ;
/*view sorted dataset*/
proc print data =sorted_data;
ここでも、行はポイント列の値に基づいて昇順に並べ替えられますが、今回はKEEPステートメントを使用して、並べ替え後にチームとポイントの列のみを保持しました。
追加リソース
次のチュートリアルでは、SAS で他の一般的なタスクを実行する方法について説明します。
SAS で NODUPKEY を使用して PROC SORT を使用する方法
SAS で変数の名前を変更する方法
SAS で新しい変数を作成する方法