スクリプト構文リファレンス > JSL関数 > 条件付き関数と論理関数
公開日: 04/01/2021

条件付き関数と論理関数

And(a, b)

a&b

説明

論理積。

戻り値

abの両方が真のときは1(true)

aまたはbのどちらか、またはabの両方が偽のときは0(false)

aまたはbのどちらか、またはabの両方が欠測値のときは欠測値

引数

2つ以上の変数または式。

メモ

3つ以上の引数を取ることができます。a&bは、すべての引数が真と評価されたときのみ、1(true)を戻します。

AndMZ(a, b)

a:&b

説明

すべての引数の論理積を戻す。欠測値はゼロとして扱われます。

戻り値

abの両方が真のときは1(true)

aまたはbのどちらか、またはabの両方が偽のときは0(false)

aまたはbのどちらか、またはabの両方が欠測値のときは0(false)

引数

2つ以上の変数または式。

メモ

3つ以上の引数を取ることができます。a:&bは、すべての引数が真と評価されたときのみ、1(true)を戻します。

Break()

説明

ループを完全に停止して、ループの後に続くステートメントの実行に移る。

ノート

Breakは、Forループ、Whileループ、およびFor Each Rowで使用できます。

Choose(expr, r1, r2, r3, ..., rElse)

説明

式(expr)を評価し、exprの値が1のときはr1の値を戻し、2のときはr2の値を戻す。どれにも該当しない場合は最後の引数(rElse)を戻します。

戻り値

引数リスト内でインデックスがexprとマッチする値、または最後の引数の値。

引数

expr

式または値。

r1, r2, r3, ...

式または値。

Continue()

説明

ループの現在の反復を終了して、次の反復を開始する。

ノート

Continueは、Forループ、Whileループ、およびFor Each Rowで使用できます。

For(init, while, increment, body)

説明

bodyに指定されたスクリプトを、条件(while)が真である間、繰り返し実行する。initincrementによって反復を制御します。

戻り値

なし

引数

init

ループ制御カウンタの初期化。

while

ループの継続/終了の条件。条件文のwhileが真である限り、ループは再度反復される。whileが偽になると、即座にループは終了する。

increment

ループが実行されるたびに、whileが評価された後、ループカウンタをインクリメント(またはデクリメント)する

body

任意の数の有効なJSL式。複数ある場合は接合する

mysum = 0; myprod = 1;
For( i = 1, i <= 10, i++, mysum += i; myprod *= i; );
Show( mysum, myprod );

mysum = 55;

myprod = 3628800;

For Each Row(<dt,> script)

説明

データテーブルの各行に対してスクリプト(script)を繰り返す。

戻り値

なし

引数

dt

(オプション)位置指定引数。データテーブルへの参照。この引数が割り当ての形式をとらない場合は、データテーブルの式とみなされます。

script

任意の有効なJSL式

次の例は、データテーブルへの参照を設定し、「Big Class.jmp」のすべての行に処理を適用します。ある行の「年齢」の値が15より大きい場合は、その年齢がログに出力されます。

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
For Each Row( dt, If( :年齢 > 15, Show( :年齢 ) ) );

If(condition1, result1, <condition2, result2,> ..., <elseResult>)

説明

引数の各ペアにおいて、1つ目のcondition引数がゼロ以外の結果になるペアの結果(result)を戻す。condition引数は順番に評価されます。すべてのcondition引数がゼロになる場合は、オプションのelseResultを評価し、その結果を戻します。elseResultの指定がなく、conditionのいずれも真でない場合は、欠測値を戻します。condition引数のすべてが欠測値になる場合は、欠測値を戻します。

IfMax(expr1, result1, expr2, result2, ... <all missing result>)

説明

引数の各ペアにおいて、1つ目の引数が最大値となっているペアの結果(各ペアの2つ目)を戻します。最大値となる式が複数ある場合には、最初の最大値に対応する結果を戻します。すべての式が欠測値で、最終結果が指定されていない場合、欠測値を戻します。すべての式が欠測値であり、最後の結果式が指定されている場合は、最後の結果式の評価を戻します。条件式は数値になる必要がありますが、結果式はどのような値でもかまいません。

戻り値

最大値に対する結果式の評価

IfMin(expr1, result1, expr2, result2, ... <all missing result>)

説明

引数の各ペアにおいて、1つ目の引数が最小値となっているペアの結果(各ペアの2つ目)を戻します。最小値となる式が複数ある場合には、最初の最小値に対応する結果を戻します。すべての式が欠測値で、最終結果が指定されていない場合、欠測値を戻します。すべての式が欠測値であり、最後の結果式が指定されている場合は、最後の結果式の評価を戻します。条件式は数値になる必要がありますが、結果式はどのような値でもかまいません。

戻り値

最小値に対する結果式の評価

IfMZ(condition1, result1, <condition2, result2,> ..., <elseResult>)

説明

引数の各ペアにおいて、1つ目のcondition引数がゼロ以外の結果になるペアの結果(result)を戻す。condition引数は順番に評価されます。すべてのcondition引数がゼロまたは欠測値になる場合は、オプションのelseResultを評価し、その結果を戻します。elseResultの指定がなく、conditionのいずれも真でない場合は、欠測値を戻します。

メモ

テスト引数は、順番に、最初のゼロ以外の結果が出るまで評価されます。すべてのテストがゼロまたは欠測値になる場合、elseExpr引数が評価されます。

IfMZ()If()と等価ですが、condition引数の評価結果が欠測値になった場合はその結果をゼロとして扱います。

Interpolate(x, x1, y1, x2, y2)

Interpolate(x, xmatrix, ymatrix)

説明

x1, y1)と(x2, y2)、または行列xmatrixymatrixで指定された2点間を線形に補間し、与えられたx値に対応するy値を戻す。各点は、昇順で並んでいる必要があります。

Is Associative Array(name)

説明

評価後の引数が連想配列のときは1、そうでなければ0を戻す。

Is Empty(global)

Is Empty(dt)

Is Empty(col)

説明

global変数、データテーブル、またはデータ列が定義されていないか、Empty()値をもつときは1、そうでなければ0を戻す。

Is Expr(x)

説明

評価後の引数が式のときは1、そうでなければ0を戻す。

Is List

Is List(x)を参照してください。

Is Name(x)

説明

評価後の引数が名前のときは1、そうでなければ0を戻す。

Is Namespace(namespace)

説明

引数namespaceが名前空間の場合は1、そうでなければ0を戻す。

Is Number(x)

説明

評価後の引数が数値か欠測値のときは1、そうでなければ0を戻す。

Is Scriptable(x)

説明

評価後の引数がスクリプト可能なオブジェクトのときは1、そうでなければ0を戻す。

Is String(x)

説明

評価後の引数が文字列のときは1、そうでなければ0を戻す。

Match(x, value1, result1, value2, result2, ..., resultElse)

説明

aが値1(value1)に等しいときは結果1(result1)を戻し、aが値2(value2)に等しいときは結果2(result2)、・・・を戻す。

ノート

Match()関数は比較の値xが欠測値であるか、value1の値が欠測値であるかを明示的にチェックします。もし両方とも欠測値であればresult1の値を戻します。そうでなければ欠測値を無視して、式xvalueN/resultNvalueNとの比較を続けます。もし式xvalueN値のいずれかと等しい場合は、対応するresultN値を戻します。もし等しいvalueN値が見つからなければ、resultElse値を戻します。

MatchMZ(x, value1, expr1, value2, expr2, ..., exprElse)

説明

exprN引数を評価してxを戻すか、xになる値がない場合はexprElse引数を評価して戻す。

ノート

MatchMZ()関数は、Match()関数と同じように動作しますが、欠測値を0として扱います。

Not(a)

!a

説明

論理否定。

戻り値

aが0以外のときは0(false)

a=0 のときは1(true)

aが欠測値のときは欠測値

引数

a

任意の変数または数値。変数の場合、数値または行列でなければなりません。

ノート

主に、条件文や、ループの制御で使用されます。

Or(a, b)

a|b

説明

論理和。

戻り値

abのどちらかまたは両方が真のときは1(true)

そうでなければ0(false)

どちらかが欠測値でもう一方が偽の場合、および、両方とも欠測値の場合は0(false)

引数

a, b

任意の変数または数値。

ノート

主に、条件文や、ループの制御で使用されます。

OrMZ(a, b)

a :| b

説明

すべての引数の論理和を戻す。欠測値はゼロとして扱われます。ゼロ以外の引数がある場合の戻り値は1、そうでない場合は0です。

戻り値

abのどちらかまたは両方が真のときは1(true)

そうでなければ0(false)

引数

a, b

任意の変数または数値。

ノート

主に、条件文や、ループの制御で使用されます。JMP 3のデータテーブルを開くと、この関数がすべてのOr関数に自動的に使用されます。

Or()は、いずれかの引数の評価が欠測値の場合、欠測値を戻します。OrMZ()は、いずれかの引数の評価が欠測値の場合、0を戻します。

Return(<Expr1>, <Expr2>, ..., <ExprN>)

説明

ユーザ定義の関数から式の値を戻す。

次の例では、Return()関数の2つの式の結果がリストで戻されます。Return()関数には、2つ以上の引数を指定することもできます。引数が1つしかない場合は、その式の値が戻されます。引数が2つ以上ある場合は、すべての式の値がリストとして戻されます。

f = Function( {a, b},
	Return( a - b, a + b )
);
{lo, hi} = f( 10, 1 );
Show( lo, hi );
Show( f( 7, 15 ) );

lo = 9;

hi = 11;

f(7, 15) = {-8, 22};

ノート

Return()を関数やメソッド、再帰的関数呼び出しの中でないところで使用すると、エラーとなります。

Step(x0, x1, y1, x2, y2, ...)

Step(x0, [x1, x2, ...], [y1, y2, ...])

説明

x0以下となっている引数xのうち、最大の値に対応する引数yを戻す。引数xは小さい順に指定されていなければなりません。

Stop()

説明

実行中のスクリプトをそこですぐに停止する。

While(expr, body)

説明

条件式(expr)を評価し、真であれば本文の式(body)を実行する。これを条件式(expr)が真でなくなるまで繰り返します。

Zero Or Missing(expr)

説明

式(expr)が欠測値またはゼロを生成する場合に1を戻し、そうでない場合は0を戻す。

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).