範囲をチェックして True または False を返す論理テストやあ、
変数内のセルの値が0.50から2.0の値の範囲内にあるかどうか、その範囲内にある場合はtrueを返し、falseを返さない場合はチェックしようとしています。私はデータテーブルと列情報にいて、編集式に次のように入力しています。
If (0.50 < ( :Name( "P1-R1-D1-L1" ) > 2.0), "True", "False") <BR /><BR />// and
<BR />If (0.50 < ( :Name( "P1-R1-D1-L1" ))|(2.0 > ( :Name( "P1-R1-D1-L1" ), "True", "False"))
しかし、どちらも私にはうまくいきません、私が間違っているのは何ですか、どんな助けも大歓迎です
ありがとう
Re: 範囲をチェックして True または False を返す論理テストもう一度、txnelson に感謝します。すべてのご協力に感謝します。大変感謝しています。Re: 範囲をチェックして True または False を返す論理テストジェフ、ありがとう、素晴らしい説明
Re: 範囲をチェックして True または False を返す論理テスト@txnelson実際の例を示しましたが、あなたの試みで何が間違っていたのか説明できます。
If (0.50 < ( :Name( "P1-R1-D1-L1" ) > 2.0), "True", "False")
ここでは、JMP がサポートしていない複雑な比較、つまり a < b > c、つまり a を試みています。未満bより大きいc.
数式エディターを見ると、JMP が提供する複雑な比較がわかります。 @txnelson使用済み:

JMP が関数型言語であり、これらの複雑な演算子が実際には関数型言語の短縮形であることを示すヘルプ テキストに注目してください。関数 Less LessEqual() および LessEqual Less() 。 JMP には、目的の比較を行う機能がありません。
2 回目の試行の場合:
If (0.50 < ( :Name( "P1-R1-D1-L1" ))|(2.0 > ( :Name( "P1-R1-D1-L1" ), "True", "False"))
必要以上に括弧があり、間違った場所にあります。 修正版は次のとおりです。
If( 0.50 < :Name( "P1-R1-D1-L1" ) | 2.0 > :Name( "P1-R1-D1-L1" ),
"True",
"False"
)
ただし、この論理比較で何を求めているのかを考えてみましょう。 JMP に列が正しいかどうかを確認するように要求しています。より大きい.5また2.0はより大きいあなたのコラム。 これは、列のすべての値に当てはまります。 列が 0.5 より小さい場合、2.0 は列より大きくなります。 列が 2.0 より大きい場合、.5 は列より小さくなります。
したがって、おそらく次のバージョンが必要です。 @txnelson a < b <= c 構造を使用して、列が 0.5 から 2.0 の範囲内にあるかどうかを確認します。
Re: 範囲をチェックして True または False を返す論理テストこれは、指定した仕様に基づいて列を作成する JSL の一部です。
Names Default To Here( 1 );
dt = New Table( "Example",
add rows( 20 ),
New Column( "P1-R1-D1-L1", formula( Random Uniform( 0, 4 ) ) )
);
dt << New Column( "TorF",
character,
formula( If( 0.50 <= :Name( "P1-R1-D1-L1" ) <= 2.0, "True", "False" ) )
);