Sas: proc sql で if ステートメントを使用する方法
SAS のPROC SQLでIFステートメントを使用することはできませんが、 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 SQLでCASE演算子を使用して、 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 SQLでCASE演算子を使用して、 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 の使用方法