Sas: proc sql で if ステートメントを使用する方法


SAS のPROC SQLIFステートメントを使用することはできませんが、 CASE演算子を使用して、特定の条件に基づいて変数が取る値を定義できます。

次の例は、さまざまなバスケットボール選手に関する情報を含む SAS の次のデータセットで実際にCASE演算子を使用する方法を示しています

 /*create dataset*/
data my_data;
    input team $points;
    datalines ;
Cavs 12
Cavs 14
Warriors 15
Hawks 18
Mavs 31
Mavs 32
Mavs 35
Celtics 36
Celtics 40
;
run ;

/*view dataset*/
proc print data =my_data;

例 1: 結果が 2 つだけの CASE 演算子の使用

PROC SQLCASE演算子を使用して、 points_flagという名前のデータセットに新しい列を生成できます。この列は、 points列の値が 20 未満の場合は値 0 をとり、それ以外の場合は値 1 をとります。

 /*create new column called points_flag using case operator*/ 
proc sql ;
  select *,
box 
      when points < 20 then 0 else 1
      end as points_flag
from my_data;
quit ; 

Points_flag列の値が 20 未満の場合は値 0 が取られ、それ以外の場合は値 1 が取られることに注意してください。

例 2: CASE 演算子を使用して 3 つ以上の結果を得る

PROC SQLCASE演算子を使用して、 points_flagという新しい列をデータセットに生成することもできます。この列は、 points列の値が 20 未満の場合は値 0、ポイントが35 未満の場合は値 1 をとります。それ以外の場合は値 2:

 /*create new column called points_flag using case operator*/ 
proc sql ;
  select *,
      box 
      when points < 20 then 0
when points < 35 then 1 else 2
      end as points_flag
      from my_data;
quit ; 

Points_flag列は、 points列の対応する値に応じて、値 0、1、または 2 を取ることに注意してください。

: 新しい列に必要な数の異なる値を生成するには、必要な数のwhenステートメントを自由に使用してください。

追加リソース

次のチュートリアルでは、SAS で他の一般的なタスクを実行する方法について説明します。

SAS: PROC SQL で WHERE 演算子を使用する方法
SAS: PROC SQL で IN 演算子を使用する方法
SAS: PROC SQL で UPDATE を使用する方法
SAS: PROC SQL での CONTAINS の使用方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です