NASKIP2オプションは、+(プラス)演算子および-(マイナス)演算子を使用した算術演算でのNA値の処理方法を制御します。NAのオペランドがある場合、NASKIP2がYESに設定されていないかぎり、結果はNAです。
パラメータ
+(プラス)演算子および-(マイナス)演算子を使用する算術演算のNA値にゼロが代入されます。NA + NAおよびNA - NAの2つの特別な場合の結果は、どちらもNAです。
(デフォルト)NA値は、+(プラス)演算子および-(マイナス)演算子を使用する算術演算でNA値として処理されます。評価されるオペランドのいずれかがNAである場合、算術演算はNAに評価されます。
使用上の注意
ファンクションの引数における演算子
NASKIP2は、NASKIPから独立しています。NASKIP2は、+(プラス)演算子および-(マイナス)演算子を使用する算術演算にのみ適用されます。NASKIPは、集計ファンクションにのみ適用されます。ただし、集計ファンクションに対するexpression引数に+(プラス)演算子や-(マイナス)演算子が含まれる場合、計算結果はNASKIPとNASKIP2の両方に依存します。例5-71「集計ファンクションの式に負の値が含まれる際のNASKIPとNASKIP2の効果」を参照してください。
NASKIP2の動作
次の4行は、NASKIP2の設定がYESである場合の、NAを含む複雑な式の評価の4段階を示します。
3 * (NA + NA) - 5 * (NA + 3)
3 * NA - 5 * 3
NA - 15
-15
例
例5-71 集計ファンクションの式に負の値が含まれる際のNASKIPとNASKIP2の効果
次の例では、INTEGERディメンションINTDIMによってディメンション化されるINTEGER変数XおよびZに、レポートの2列目と3列目に示す値が格納されています。NASKIPとNASKIP2の設定の組合せ(最初の組合せはデフォルトの設定)ごとに、和X + Zが計算されます。この例は、TOTALファンクションに対するexpression引数に+(プラス)演算子が使用される場合、TOTALファンクションから返される結果がNASKIPとNASKIP2の両方に依存することも示します。
NASKIPをYES、NASKIP2をNOに設定
この例では、NASKIPがYESに設定されるので、TOTALファンクションでNA値が無視されます。NASKIP2がNOに設定されるので、いずれかのオペランドがNAの場合、+(プラス)演算の結果はNAです。
NASKIP = YES NASKIP2 = NO COLWIDTH = 5 REPORT LEFT W 6 DOWN intdim x, z, x + z
これらの文によって生成される出力は次のとおりです。NASKIP2の設定がNOなので、XとZのいずれかがNAの場合、式X + Zの結果はNAです。
INTDIM X Z x + z ------ ----- ----- ----- 1 NA 2 NA 2 3 NA NA 3 7 6 13
次の文は、TOTALファンクションに対するexpression引数に+(プラス)演算子を使用します。
SHOW TOTAL(x + z)
この文によって生成される出力は、次のとおりです。
13
次の文は、+(プラス)演算子を使用して、2つのTOTALファンクションから返される結果を加算します。
SHOW TOTAL(x) + TOTAL(z)
この文によって生成される出力は、次のとおりです。
18
NASKIPをYES、NASKIP2をYESに設定
この例では、NASKIPがYESに設定されるので、TOTALファンクションでNA値が無視されます。NASKIP2がYESに設定されるので、NA値は+(プラス)演算子によって無視されます。
NASKIP = YES NASKIP2 = YES REPORT LEFT W 6 DOWN intdim x, z, x + z
これらの文によって生成される出力は次のとおりです。NASKIP2の設定がYESなので、式X + Zが計算される場合、NA値は無視されます。
INTDIM X Z X + Z ------ ----- ----- ----- 1 NA 2 2 2 3 NA 3 3 7 6 13
次の文は、TOTALファンクションに対するexpression引数に+(プラス)演算子を使用します。
SHOW TOTAL(x + z)
この文によって生成される出力は、次のとおりです。
18
次の文は、+(プラス)演算子を使用して、2つのTOTALファンクションから返される結果を加算します。
SHOW TOTAL(x) + TOTAL(z)
この文によって生成される出力は、次のとおりです。
18
NASKIPをNO、NASKIP2をYESに設定
この例では、NASKIPがNOに設定されるので、TOTALファンクションで評価された値がNAの場合、TOTALからはNAが返されます。NASKIP2がYESに設定されるので、NA値は+(プラス)演算子によって無視されます。
NASKIP = NO NASKIP2 = YES REPORT LEFT W 6 DOWN intdim x, z, x + z
この文によって生成される出力は、次のとおりです。
INTDIM X Z X + Z ------ ----- ----- ----- 1 NA 2 2 2 3 NA 3 3 7 6 13
次の文は、TOTALファンクションに対するexpression引数に+(プラス)演算子を使用します。
SHOW TOTAL(x + z)
この文によって生成される出力は、次のとおりです。
18
次の文は、+(プラス)演算子を使用して、2つのTOTALファンクションから返される結果を加算します。
SHOW TOTAL(x) + TOTAL(z)
この文によって生成される出力は、次のとおりです。
NA
NASKIPをNO、NASKIPをNOに設定
この例では、NASKIPが再びNOに設定されるので、TOTALファンクションで評価された値がNAの場合、TOTALからはNAが返されます。NASKIP2もNOに設定されるので、いずれかのオペランドがNAの場合、+(プラス)演算の結果はNAです。
NASKIP = NO NASKIP2 = NO REPORT LEFT W 6 DOWN intdim x, z, x + z
この文によって生成される出力は、次のとおりです。
INTDIM X Z X + Z ------ ----- ----- ----- 1 NA 2 NA 2 3 NA NA 3 7 6 13
次の文は、TOTALファンクションに対するexpression引数に+(プラス)演算子を使用します。
SHOW TOTAL(x + z)
この文によって生成される出力は、次のとおりです。
NA
次の文は、+(プラス)演算子を使用して、2つのTOTALファンクションから返される結果を加算します。
SHOW TOTAL(x) + TOTAL(z)
この文によって生成される出力は、次のとおりです。
NA