이 메시지를 표시하는 문제는 JMP로 가져온 테이블에서 발생합니다. JMP는 TRUE/FALSE 열을 문자 유형으로 가져옵니다. 이것을 다른 논리/부울 계산과 결합하고 싶습니다. 예를 들면 다음과 같습니다.
:TRUEFALSEcolumn & :NumericValue>100
그러나 부울 연산자는 숫자 데이터에서만 작동하도록 설계되었습니다(이유를 이해합니다). 나는 R의 as.logical() 함수와 동등한 JSL을 찾다가 JSL의 As Boolean()을 발견했습니다.
기술 지원과 상호 작용한 후(여기에서 추적 번호로 참조된 트랙 참조) JSON 파일을 처리하는 JMP의 기능을 지원하기 위해 As Boolean()이 생성되었음을 이해합니다. 나는 여기에 더 많은 잠재력이 있다고 생각하고 And(), Or() 및 Not()과 같은 부울 연산자에서 지원되는 As Boolean()의 출력을 보고 싶습니다.
예, 유효한 해결 방법은 문자 "FALSE"를 숫자 0으로, 문자 "TRUE"를 숫자 1로 변환하는 Match() 문입니다. As Boolean(:TRUEFALSEcolumn)만큼 간결하고 읽기 쉽지 않으며 더 큰 통계 프로그래밍 언어에 대한 지식이 있는 문제에 접근하는 통계학자에게 간단하지 않은 JSL 언어의 뉘앙스입니다. 기능을 추가하면 편리합니다. 우선 순위가 높은 것은 아닙니다.
우리 중 일부는 최근에 이 문제를 살펴보고 있었습니다. 여기에 보고한 대로 문제가 여전히 존재하지만 여전히 Match() 문보다 쉬운 해결 방법을 공유하고 싶었습니다.
as boolean("TRUE")>0 & 100>99; //AND
as boolean("False")>0 & 100>99; //OR
//example table
New Table( "example AsBoolean",
Add Rows( 4 ),
New Column( "TrueFalseCol", Character, "Nominal",
Set Values( {"True", "False", "True", "False"} )
),
New Column( "value", Numeric, "Continuous",
Set Values( [100, 100, 50, 50] )
),
New Column( "product", Numeric, "Continuous",
Formula( As Boolean( :TrueFalseCol ) * :value )
),
New Column( "AND", Numeric, "Continuous",
Formula( and(As Boolean( :TrueFalseCol )>0, :value) )
),
New Column( "OR", Numeric, "Continuous",
Formula( or(As Boolean( :TrueFalseCol )>0, :value) )
),
New Column( "NOT", Numeric, "Continuous",
Formula( Not(As Boolean( :TrueFalseCol )>0) )
)
);
매력적인. 나는 그것을 이해하지만 실제로 직관적이라고 생각하지 않습니다. 따라서 여전히 개선의 여지가 있지만 적어도 이것은 도움이 됩니다.