計算式に、条件式の関数を含めることができます(これらの関数は、計算式エディタでは、「条件付き」のグループに分類されています)。条件式の関数では、条件節と結果を指定します。これらの関数を用いると、列の各セルに、条件によって、異なる計算結果を割り当てることができます。条件式の関数には次のルールがあります。
構文の詳細については、『スクリプトガイド』の「JSLの構成要素」章および『スクリプト構文リファレンス』の「JSL関数」章を参照してください。
メモ: InterpolateStepFor、およびWhileといった関数は、もっぱらJMPスクリプト言語(JSL; JMP Scripting Language)でプログラミングするときに用います。計算式エディタでもこれらの関数を使えますが、依存性と曖昧性が生じるためお薦めしません。通常、JSLプログラムは、.jslという拡張子で保存します。また、JSLプログラムは、テーブルプロパティとしてデータテーブルに保存することもできます。テーブルプロパティの詳細については、「はじめに」章の「「テーブル」パネル」(30ページ)を参照してください。JMPスクリプト言語については、『スクリプト構文リファレンス』を参照してください。
計算式エディタにて、関数の一覧からIf関数を選択すると、条件節、then節、else節のブロックが空白で表示されます。これらのブロックをクリックして、式や値を入力してください。たとえば、「合計」が0でない場合にだけ、「度数÷合計」を計算するには、条件式に示すような条件式にします。
図A.3 条件式
If条件に新しい条件を追加するにはthen節を強調表示し、計算式エディタのキーパッドにある挿入ボタン()をクリックします。まず、既存のelse条件がに変更されます。挿入ボタンをもう一度クリックすると、else節が追加されます。then節またはelse節を強調表示して挿入ボタンを繰り返しクリックすると、else節条件がに変わるか、または新しいが追加されます。
節を削除するには、その上のthen節を選択し、キーボードのDeleteキーを押すか、または計算式エディタのキーパッドにある削除ボタン()をクリックします。
計算式エディタで[Match]を選択すると、ポップアップメニューに、次の2つのオプションが表示されます。
[Matchの引数をデータから追加]オプション。このオプションを選択すると、データの全水準に対する節が自動的に追加されます。この処理は、Shiftキーを押しながら[条件付き]を選び、[Match]を選んでも行えます。Match関数の使用例の左側は、自動的に追加された節を示しています。
[追加しない]オプション。このオプションを選択した場合は、ユーザ自身が各節を追加していってください。Match関数の使用例の右側は空の節を示しています。これらの空の節を、自分で埋めていってください。
図A.4 Match関数の使用例
自動的に引数が挿入されている場合は、then節を強調表示してから式を入力します。引数が空の場合は、「式」「値」、または「then節」のいずれかを強調表示して、式を入力します。計算式内のいずれかの式を強調表示した後、Matchをクリックした場合は、強調表示した式が「式」に代入されたMatch関数が作成されます(この時、「then節」「値」は空白のままです)。
MatchIfよりも速く計算でき、使用するメモリも少なくて済みます。これは、変数がデータテーブル内の各行で一度評価されるだけだからです。If条件は、節が真になるまで、各行のIf節で変数を評価する必要があります。Match条件とIf条件の違いについては、第 “比較関数”を参照してください。
IfMatchは、条件の一番上から最初の真の節を検索し、対応する結果の式を評価して戻します。後続の真の節は無視されます。
次の例は、年齢の値に従って、値が設定されています。
図A.5 Match関数の例
メモ: Matchは末尾の空白を無視しますが、Ifは無視しません。
Match関数は、条件節が欠測値の場合には、欠測値を戻します。そのため、欠測値に対する処理を別に記述する必要があります。
Choose関数は、Match関数に似ていますが、条件の引数が、1から始まる連続した整数になっています。条件にマッチした場合、対応するの値が戻されます。Choose条件の例は、Choose関数の例です。Choose関数は、条件にあてはまる節の結果式を評価し、その値を戻します。
図A.6 Choose条件の例
式を強調表示してChooseをクリックすると、計算式エディタは1つのを伴う新しい条件式を作成します。If条件の場合と同様に、キーパッドの挿入ボタン()や削除ボタン()を使って節の追加や削除ができます。
Chooseは式を評価し、直ちにその値に対応する結果の節に行って値を戻します。Chooseを使った場合、1から始まる連続した整数を生成する式を一つ入力するだけで、後は各整数に対応する結果の節を入力するだけで済みます。
引数が両方とも真の場合、1を戻します。それ以外の場合、0を戻します (AndOrの評価を参照)。And関数の作成の計算式では、両方の比較が真である参加者だけがグループ1に分類されます。
図A.7 And関数の作成
引数のどちらかが真の場合、1を戻します。引数が両方とも偽の場合は0を戻します (AndOrの評価を参照)。Or関数の作成の計算式では、男性と13歳より年上のすべての参加者をグループ1に割り当てます。
図A.8 Or関数の作成
AndOrの評価の左側の真偽表は、2つの引数が真/偽のいずれかであるときの、And( & )関数およびOr| )関数の戻り値を示しています。右側の表は、左側(a)か右側(b)のどちらか、または両方の式に欠測値がある場合の結果を示しています。
図A.9 AndOrの評価
引数が偽の場合、1を戻します。引数が真の場合、0を戻します。Not関数を使う場合、曖昧さを避けるため、必要な個所に括弧を入れてください。たとえば、!(weight==64)は真にも偽にもなり得ます(1または0)。しかし、(!weight)==64は、Notが0か1しか戻さないので、常に偽(0)となります。!(weight==64)などの式は、weight != 64と入力することもできます。
引数で与えられた2点(x1,y1)と(x2,y2)を線形補間してえられたy値を戻します。挿入キーによって、引数xyのペアを追加していくことができます。Interpolateは、x値に対応するyの値を戻します。
図A.10 Interpolate関数の例
Step関数はInterpolateと似ていますが、引数x以下で一番大きいxの値に対応するyの値を戻します。つまり、この関数は、線形補間ではなく、ステップ関数の補間によって、与えられたxに対するyを求めます。Interpolate関数と同様、xyのペアはいくつでも持つことができます。
図A.11 Step関数の例
範囲条件が真である限り、本体引数のステートメントを繰り返します。初期値次の式は、繰り返しを制御します。
条件を繰り返し判定し、が真でなくなるまで本体を繰り返します。
Breakは、ループを完全に停止して、ループの後に続くステートメントを継続します。Continueは、ループの現在の反復を終了して、次の反復を開始します。
両方ともForWhile、およびFor Each Rowループで使用されます。