計算式に、条件式の関数を含めることができます(これらの関数は、計算式エディタでは、「条件付き」のグループに分類されています)。条件式の関数では、条件節と結果を指定します。これらの関数を用いると、列の各セルに、条件によって、異なる計算結果を割り当てることができます。条件式の関数には次のルールがあります。
構文の詳細については、『スクリプトガイド』の「JSLの構成要素」章および『スクリプト構文リファレンス』の「JSL関数」章を参照してください。
メモ: Interpolate、Step、For、および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節」と「値」は空白のままです)。
•
|
•
|
IfとMatchは、条件の一番上から最初の真の節を検索し、対応する結果の式を評価して戻します。後続の真の節は無視されます。
|
次の例は、年齢の値に従って、値が設定されています。
図A.5 Match関数の例
Match関数は、条件節が欠測値の場合には、欠測値を戻します。そのため、欠測値に対する処理を別に記述する必要があります。
Choose関数は、Match関数に似ていますが、条件の引数が、1から始まる連続した整数になっています。条件にマッチした場合、対応する節の値が戻されます。Choose条件の例は、Choose関数の例です。Choose関数は、条件にあてはまる節の結果式を評価し、その値を戻します。
図A.6 Choose条件の例
式を強調表示してChooseをクリックすると、計算式エディタは1つの節を伴う新しい条件式を作成します。If条件の場合と同様に、キーパッドの挿入ボタン()や削除ボタン()を使って節の追加や削除ができます。
Chooseは式を評価し、直ちにその値に対応する結果の節に行って値を戻します。Chooseを使った場合、1から始まる連続した整数を生成する式を一つ入力するだけで、後は各整数に対応する結果の節を入力するだけで済みます。
図A.7 And関数の作成
引数のどちらかが真の場合、1を戻します。引数が両方とも偽の場合は0を戻します (AndとOrの評価を参照)。Or関数の作成の計算式では、男性と13歳より年上のすべての参加者をグループ1に割り当てます。
図A.8 Or関数の作成
AndとOrの評価の左側の真偽表は、2つの引数が真/偽のいずれかであるときの、And( & )関数およびOr(| )関数の戻り値を示しています。右側の表は、左側(a)か右側(b)のどちらか、または両方の式に欠測値がある場合の結果を示しています。
引数が偽の場合、1を戻します。引数が真の場合、0を戻します。Not関数を使う場合、曖昧さを避けるため、必要な個所に括弧を入れてください。たとえば、!(weight==64)は真にも偽にもなり得ます(1または0)。しかし、(!weight)==64は、Notが0か1しか戻さないので、常に偽(0)となります。!(weight==64)などの式は、weight != 64と入力することもできます。
引数で与えられた2点(x1,y1)と(x2,y2)を線形補間してえられたy値を戻します。挿入キーによって、引数xとyのペアを追加していくことができます。Interpolateは、x値に対応するyの値を戻します。
図A.10 Interpolate関数の例
Step関数はInterpolateと似ていますが、引数x以下で一番大きいxの値に対応するyの値を戻します。つまり、この関数は、線形補間ではなく、ステップ関数の補間によって、与えられたxに対するyを求めます。Interpolate関数と同様、xとyのペアはいくつでも持つことができます。
図A.11 Step関数の例
Breakは、ループを完全に停止して、ループの後に続くステートメントを継続します。Continueは、ループの現在の反復を終了して、次の反復を開始します。