식에서 복잡한 이름을 가진 열을 참조하는 방법초보자 JSL 스크립터는 여기...
열 내에서 누락된 데이터가 있는 행을 삭제하는 스크립트를 만들고 싶습니다.지금 열 이름을 바꾸면 다음과 같이 작동합니다.
clean_dt << selectWhere(IsMissing ( :THK ) ) << 행 삭제 ;
문제는 이 스크립트가 동적이고 내가 지정한 모든 열의 이름을 처리할 수 있고 예를 들어 열 번호로 참조할 수 있기를 원한다는 것입니다. 열 이름이 다음과 같이 복잡하다고 가정해 보겠습니다.
단계::측정::데이터::THK:원시(평균)
매번 열 이름을 바꾸고 싶지 않습니다... 나는 "작동해야 한다"고 생각하는 것들을 여러 번 반복해 보았지만 그들은 그렇지 않았습니다.
clean_dt << selectWhere(IsMissing( 칼럼(8) )) << 행 삭제 ;
또는
clean_dt << selectWhere(IsMissing(: 단계::데이터 ::THK:원시(평균) )) << 행 삭제 ; (열 이름에 특수 문자가 너무 복잡함)
이 메시지와 함께 오류가 발생할 때마다
'Is Missing' , Is Missing/*###*/(Column( 8 )) 액세스 또는 평가에서 인수는 숫자{1}여야 합니다.
Re: 식에서 복잡한 이름을 가진 열을 참조하는 방법감사합니다! 여기에서 i를 열 인덱스로 사용하여 루프에서 식을 전달하는 것이 쉬워야 합니다.Re: 식에서 복잡한 이름을 가진 열을 참조하는 방법Select Where 메시지를 사용할 때 JMP는 행이 기준을 충족하는지 확인하기 위해 각 행을 살펴보므로 기준은 현재 행을 기반으로 해야 합니다.
Column 함수는 실제로 전체 열에 대한 참조를 반환하기 때문에 Select Where 메시지에서 Column 함수를 사용할 때 현재 행에 첨자를 포함해야 합니다. 이것은 [Row()] 또는 간단히 []를 첨자하여 수행할 수 있습니다. 아래를 참조하십시오.
dt << Select where( Is Missing( Column( 8 )[] ) );
특수 문자와 함께 열 이름을 사용하려는 경우 열 이름의 문자열과 함께 이름 파서를 사용할 수 있습니다. 이 문자열이 변수여야 하는 경우 대신 Column 함수를 사용해야 합니다.
dt << Select Where( Is Missing( :Name( "Step::Data::THK:Raw (Mean)" ) ) );
또는
str = "Step::Data::THK:Raw (Mean)";
dt << Select Where( Is Missing( Column( str )[] ) );