Match()関数を使うと、比較対象となる値をすべて手で入力しなくても、等しいかどうかの比較を繰り返すことができます。構文は次のとおりです。
Match( x, value1, result1, value2, result2, ..., resultElse );
たとえば次のスクリプトは、「Big Class.jmp」の性別の略称をコード変更します。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
For Each Row( 性別 =
Match(
性別,
"F", "女性",
"M", "男性",
"不明");
);
For Each Row( 性別 =
|
テーブルの各行で「性別」の列の値を変更するよう指定する。
|
Match()ループを開始する。
|
|
「性別」をMatchの引数に指定する。
|
|
"F", "女性",
|
|
"M", "男性",
|
|
"不明" );
|
|
このMatch()の例は、第 “If”の例を単純にしたものです。Match()の利点は、比較の変数を条件式ごとに繰り返す必要がなく、一度定義するだけでよいことです。欠点は、Ifとは異なり、演算子のある式が使えないことです。Match()式で性別 == "F"という引数を使うと、エラーになります。
dt = Open( "$SAMPLE_DATA/Travel Costs.jmp" );
For Each Row(
予約した曜日 = Match( 予約した曜日,
"Sunday", "SUN",
"Monday", "MON",
"Tuesday", "TUE",
"Wednesday", "WED",
"Thursday", "THU",
"Friday", "FRI",
"Saturday", "SAT",
"Not Specified"
)
);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
For Each Row(
年齢 = Match( 年齢, 12, "Twelve", 13, "Thirteen", 14, "Fourteen", 15, "Fifteen", 16, "Sixteen", "Other" )
);
メモ: Match()関数は比較の値xが欠測値であるか、value1の値が欠測値であるかを明示的にチェックします。もし両方とも欠測値であればresult1の値を戻します。そうでなければ欠測値を無視して、式xとvalueN/resultNのvalueNとの比較を続けます。もし式xがvalueN値のいずれかと等しい場合は、対応するresultN値を戻します。もし等しいvalueN値が見つからなければ、resultElse値を戻します。