スクリプトガイド > JSLの構成要素 > 不完全または一致しないデータの比較
公開日: 04/01/2021

不完全または一致しないデータの比較

欠測値を含んだデータを比較する場合は、常に真であるような条件を指定するか、Is Missing()Zero Or Missing()などの関数を使用しない限り、間違った結果が戻される可能性があります。また、(数値と文字など)タイプが異なるデータや行列内のデータを比較する場合も、混乱を招くことがあります。

表5.5は、そのような比較や行列の例と結果を示しています。比較で使用する演算子については、演算子を参照してください。特定の日付時間関数については、『スクリプト構文リファレンス』の比較関数を参照してください。

注: ここでの行列は、行数と列数が同じものでなければなりません。

表5.5 特殊なケースの比較テスト(一部)

テスト

結果

説明

m=.; m==1

.

等しいかどうかのテストに欠測値を指定した場合は、欠測値を戻す。

m=.; m!=1

.

等しくないかどうかのテストに欠測値を指定した場合は、欠測値を戻す。

m=.; m<1; m>1;など

.

欠測値を使った比較はどれも欠測値を戻す(真である可能性がある場合は、次を参照)。

m=.; 1<m<0

0

(論理演算子と同様)2つ以上のオペランドを取る比較では、偽は欠測値に優先するため、真である可能性のない欠測値が含まれた比較は偽を戻す。

{a, b}==List(a, b)

1

リストの項目が等しいかどうかのテストは、結果として1つの値を戻す。

{a, b}<{a, c}

.

リストの項目の比較はできない。

1=="abc"

0

等しいかどうかのテストでデータのタイプが異なっている場合は、偽を戻す。

1<="abc"

.

データのタイプが異なっている比較は、欠測値を戻す。

[1 2 3]==[2 2 5]

[0 1 0]

行列が等しいかどうかのテストは、要素ごとの結果を行列で戻す。行列と行列を比較する場合、要素ごとに比較を行い、結果の1と0の行列を戻します。

[1 2 3]==2

[0 1 0]

行列とすべての要素が2である行列が等しいかどうかのテスト。行列を数値と比較する場合、数値はすべての要素がその値である行列として扱われます。

[1 2 3] < [2 2 5]

[1 0 1]

行列の比較は、要素ごとの比較の結果を行列で戻す。

[1 2 3] < 2

[1 0 0]

行列とすべての要素が2である行列との比較。

Is Missing(m)

1

欠測値の場合には1を戻し、そうでない場合は0を戻す。文字の欠測値の場合は、空白の引用符を使って比較することもできます(例: m == "")。

Zero Or Missing(m)

1

値が0または欠測値の場合に1を戻す。引数は数値か行列でなければならず、文字列は不可。

All([2 2]==[1 2])

0

要素ごとの比較を要約する。すべての比較が真の場合にのみ1を戻し、それ以外の場合は0を戻す。

Any([2 2]==[1 2])

1

要素ごとの比較を要約する。いずれかの比較が真の場合に1を戻し、そうでない場合は0を戻す。

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