Where 행 명령은 특정 열에서만 작동합니다.여보세요,
나는 "임계 값에 도달했는지 여부에 따라 숫자 값을"P "또는"N "으로 대체하는"명령 행 위치 "명령을 사용합니다.
코드는 다음과 같습니다.
dt = Open ( "C : \ test_data.jmp");
thresh = 12; // 사용자가이 임계 값을 설정합니다.
시도해보십시오 (dt : HOOK [dt << 행을 어디에서 가져 가야 (: Hook> = thresh)] = "P");
시도해보십시오 (dt : HOOK [dt << 행을 가져 오려면 (: Hook == "")] = "N");
그래서 이것은 잘 작동하고 열을 N과 P로 채 웁니다. 두 줄을 복사하여 붙여 넣고 열 지정을 변경하면 다른 열에서는 작동하지 않습니다. 명령의 순서를 변경하거나 열의 순서를 변경하더라도 여전히 Hook 열만 있습니다.
내가 뭘 놓치고 있니?
감사!
케이
Re : Where 행 명령은 특정 열에서만 작동합니다.열은 숫자이므로 비교는
Try( dt:HOOK[dt << get rows where( :Hook == "" )] = "N" );
작동하지 않을 것이다. 대신 누락 된 것을 사용해야합니다 :
Try( dt:HOOK[dt << get rows where( is missing(:Hook))] = "N" );
그러나 열이 숫자이기 때문에 "N"에 대한 할당이 작동하지 않는다고 말하는 사람들이 있습니다.
Re : Where 행 명령은 특정 열에서만 작동합니다.그렇습니다 ..... 그렇게 할 것입니다, 그러나, 이것을하는 것은 좋은 소프트웨어 습관이 아닙니다. "P"또는 "N"값을 설정하는 대신 값을 다른 숫자 값으로 변경하고 열 속성 인 값 레이블을 사용하여 지정한 숫자 값을 변경하여 " P "또는"N ". 그렇게하면 "Thresh"값을 사용하는 것처럼 숫자 값과 계속 비교할 수 있지만 디스플레이에서 원하는 것을 제공합니다.
Re : Where 행 명령은 특정 열에서만 작동합니다.내 생각에는 @txnelson 맞아.
로그에서 오류를 볼 수 있도록 시도에서 Try ()를 제거하십시오.
다음은 문자 값을 숫자 열에 할당하려고 할 때 받게 될 오류의 예입니다.
//:*/
dt=open("$SAMPLE_DATA\Big Class.jmp");
thresh=65;
dt:height[dt << get rows where( :height >= thresh )] = "P";
/*:
Column "height" requires numeric values in access or evaluation of 'Bad Argument'
Re : Where 행 명령은 특정 열에서만 작동합니다.반대로하려고하지는 않지만, 그것이 하나의 cloumn에서 작동 할 때, 그것은 P와 N의 삽입시 문자로 자동으로 변환됩니다.
Re : Where 행 명령은 특정 열에서만 작동합니다.열이 숫자 및 연속이면 값을 "P"또는 "N"으로 설정하면 작동하지 않습니다. 셀을 숫자 값과 같게 설정할 수는 있지만 문자 값은 설정할 수 없습니다.
Re : Where 행 명령은 특정 열에서만 작동합니다.나는 실제로 그것을 고려했다 (문제 해결은 초보자에게는 너무 초라한 것이 아니다). 그러나 열 정보를 보면, 세 개의 열 모두 "숫자"& "연속"으로 설정된다.
Re : Where 행 명령은 특정 열에서만 작동합니다.숫자 또는 문자로 된 열에 문제가 있습니다. 열의 모든 셀은 문자 또는 숫자 여야합니다. 당신의 코드에서, 열 Hook이 "Thresh"라는 숫자 값과 비교되도록 요청할 것입니다. "Thresh"의 숫자 값은 12입니다. 후크의 값을 문자 "P"또는 "N"중 하나로 설정하려고합니다.
열이 후크, 반올림 및 채우기 숫자 또는 문자입니까?
Re : Where 행 명령은 특정 열에서만 작동합니다.나는 그것이 * 단순한 것이 었으면 좋겠다. 추가 코드는 다음과 같습니다. 내가 누락 된 일종의 파일 연산자가 있습니까? 예를 들어, 각 열의 치환 후에 닫거나 저장할 필요가 있습니까?
기본 이름은 여기에있다. ( 1 );
dt = 열다 ( "C : \ test_data.jmp" );
thresh = 12 ; // 사용자가이 임계 값을 설정합니다 (출력의 행 정의)
시험 (dt : HOOK [dt << 행을 가져오다. (: Hook> = thresh)] = "피" );
시험 (dt : HOOK [dt << 행을 가져오다. (: 후크 == "" )] = "엔" );
시험 (dt : ROUNDS [dt << 행을 가져오다. (: Rounds> = thresh)] = "피" );
시험 (dt : ROUNDS [dt << 행을 가져오다. (: 라운드 == "" )] = "엔" );
시험 (dt : WHIP [dt << 행을 가져오다. (: Whip> = thresh)] = "피" );
시험 (dt : WHIP [dt << 행을 가져오다. (: 채찍 == "" )] = "엔" );
Re : Where 행 명령은 특정 열에서만 작동합니다.후크 값을 잘라내어 붙여 넣고 변경 한 후에 줄을 표시 할 수 있습니까?
내 생각 엔 후크가 나타나는 두 열의 2 개 장소 중 하나를 변경하지 않는다는 것입니다.