열 값 비교를 위한 where 문 선택긴 휴식과 녹슨 느낌 후 JSL로 돌아왔습니다.
문이 작동하는 select를 얻을 수 없습니다. 꽤 간단하다고 확신합니다.
값을 다른 두 열의 값과 비교하여 행을 선택하려고 합니다.
dt << select where( :Col1 > :Col2 & :Col1< :Col3);
Col1은 더 사용해야 하기 때문에 문자(의도적으로)이고 Col2,Col3은 숫자 열입니다.
뭐가 잘못 되었 니?
GUI에서 이 작업을 시도했지만 작동하지 않는 것 같습니다.
감사
Re: 열 값 비교를 위한 where 문 선택안녕 @ENTHU ,
에 의해 언급된 바와 같이 @mzwald , 비교 >, < 등을 사용하려면 숫자 값이 필요합니다.
:col1(공칭)에 대해 이 문제를 해결하는 한 가지 아이디어는 다른 문자 클래스(가능한 경우)에 대해 0, 1, 2, 3, 4와 같은 숫자 코딩을 사용한 다음 열 속성 " 값 레이블"을 사용하여 문자를 레이블 역할에 넣습니다. 이렇게 하면 비교를 수행할 수 있지만 동시에 열 내용을 그래프로 표시하거나 표시할 때 값 레이블이 대신 표시됩니다.
간단한 3열 테이블과 귀하가 작성한 것과 동일한 비교 코드로 테스트했습니다. 열 1의 값은 0-4이고 열 2는 Random Normal(0)이고 열 3은 Random Uniform(-1,1)입니다. 이 경우 6행을 선택했습니다.
도움이 되었기를 바랍니다!,
DS

Re: 열 값 비교를 위한 where 문 선택안녕 @ENTHU ,
해결해야 할 몇 가지 사항을 볼 수 있습니다. 데이터 테이블에서 이러한 열을 참조하려고 합니까? 그렇다면 그런 방식으로 참조를 만들기 위해 구문을 조정해야 합니다(예: :Column(#)[] ). 또한 첫 번째 열이 문자 데이터 유형인 경우 비교를 수행하기 위해 문자열을 숫자 값으로 변환하기 위해 num() 함수에서 해당 열에 대한 참조를 래핑해야 합니다. 다음은 시작하는 데 도움이 되는 몇 가지 코드입니다.
dt = current data table();
dt << select where( num(:Column(1)[]) > :Column(2)[] & num(:Column(1)[]) < :Column(3)[]);
이게 도움이 되길 바란다!
@줄리안
Re: 열 값 비교를 위한 where 문 선택 비교의 경우 모든 열은 숫자여야 합니다.