범위를 확인하고 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를 반환하는 Logical Test다시 한 번 txnelson에게 감사드립니다. 도움을 주셔서 감사합니다. 대단히 감사합니다.Re: 범위를 확인하고 True 또는 False를 반환하는 Logical Test감사합니다 제프, 훌륭한 설명
Re: 범위를 확인하고 True 또는 False를 반환하는 Logical Test@txnelson 실제 예제를 제공했지만 시도에서 잘못된 점을 설명할 수 있습니다.
If (0.50 < ( :Name( "P1-R1-D1-L1" ) > 2.0), "True", "False")
여기에서는 JMP가 지원하지 않는 복잡한 비교, 즉 a < b > c, 즉 a를 시도하고 있습니다. 미만 비 ~보다 큰 씨.
수식 편집기를 보면 JMP가 제공하는 복잡한 비교를 볼 수 있습니다. @txnelson 사용된:

JMP가 기능적 언어이며 이러한 복잡한 연산자가 함수 Less LessEqual() 및 LessEqual Less() . JMP에는 원하는 비교 기능이 없습니다.
두 번째 시도:
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은 ~보다 큰 당신의 칼럼. 이는 열의 모든 값에 적용됩니다. 열이 .5보다 작으면 2.0이 열보다 큽니다. 열이 2.0보다 크면 .5가 열보다 작습니다.
따라서 다음 버전을 원할 것입니다. @txnelson 제공된 경우 a < b <= c 구성을 사용하여 열이 .5에서 2.0 범위 내에 있는지 확인합니다.
Re: 범위를 확인하고 True 또는 False를 반환하는 Logical Test다음은 제공한 사양에 따라 열을 생성하는 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" ) )
);