Sas で if-then-else を使用する方法 (例あり)
SAS でIF-THEN-ELSEステートメントを使用すると、条件が true の場合は値を返し、条件が true でない場合は別の値を返すことができます。
このステートメントでは、次の基本構文を使用します。
if var1 > 30 then var2 = 'good';
else var2 = 'bad';
複数のELSE IFステートメントを連結して、より多くの条件に基づいてより多くの潜在的な値を返すこともできます。
if var1 > 35 then var2 = 'great';
else if var1 > 30 then var2 = 'good';
else var2 = 'bad';
次の例は、SAS の次のデータセットでこれらの各ステートメントを実際に使用する方法を示しています。
/*create dataset*/
data original_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 = original_data;
例 1: SAS の IF-THEN-ELSE
次のIF-THEN-ELSEステートメントを使用して、ポイント列の値が 30 より大きい場合は値 “good”、それ以外の場合は値 “bad” を取得する、評価という新しい変数を作成できます。
/*create new dataset with new variable called rating*/ data new_data; set original_data; if points > 30 then rating = 'good'; else rating = 'bad'; run ; /*view new dataset*/ proc print data =new_data;
評価と呼ばれる新しい列は、ポイント列の値が 30 より大きい場合は「良い」という値をとり、それ以外の場合は「悪い」という値を取得することに注意してください。
例 2: SAS の IF-THEN-ELSE IF
次のIF-THEN-ELSE IFステートメントを使用して、次の値を取る評価と呼ばれる新しい変数を作成できます。
- ポイントが 35 を超える場合は「スーパー」
- それ以外の場合、ポイントが 30 を超える場合は「良好」
- そうでなければ「悪い」
次のコードは、これを行う方法を示しています。
/*create new dataset with new variable called rating*/ data new_data; set original_data; if points > 35 then rating = 'great'; else if points > 30 then rating = 'good'; else rating = 'bad'; run ; /*view new dataset*/ proc print data =new_data;
評価と呼ばれる新しい列は、ポイント列の対応する値に応じて、「優れた」、「良い」、または「悪い」という値を取ります。
注: ELSE IFステートメントを必要なだけ使用して、さまざまな条件に基づいて必要なだけ異なる値を返します。
追加リソース
次のチュートリアルでは、SAS で他の一般的なタスクを実行する方法について説明します。