열이 없는 경우 열 변경을 건너뛰도록 스크립팅안녕하세요 여러분,
대상 열이 없는 경우 스크립트 조각을 자동으로 무시할 수 있는 방법이 있습니까? 예를 들어 아래에 표시된 스크립팅이 있는데 때로는 "숫자 C"를 사용할 수 없는 경우도 있습니다(3개의 변수가 있을 수도 있고 없을 수도 있는 자동화 부분입니다). "숫자 C"를 찾을 수 없을 때 스크립트는 현재 이 부분에서 정지됩니다. 이상적으로는 스크립트의 해당 부분이 없으면 자동으로 무시하는 여러 개의 "숫자 #"이 있는 스크립트를 만들고 싶을 것입니다.
데이터 테이블 ( "1월 5일 하위 집합" ) ;
열 ( "열" ) << 데이터 형식 ( 숫자 ) ;
열 ( "열" ) << 모델링 유형 ( 마디 없는 ) ;
열 ( "데이터" ) << 데이터 형식 ( 숫자 ) ;
열 ( "데이터" ) << 모델링 유형 ( 마디 없는 ) ;
열 ( "숫자 A" ) << 데이터 형식 ( 숫자 ) ;
열 ( "숫자 A" ) << 모델링 유형 ( 마디 없는 ) ;
열 ( "숫자 B" ) << 데이터 형식 ( 숫자 ) ;
열 ( "숫자 B" ) << 모델링 유형 ( 마디 없는 ) ;
열 ( "숫자 C" ) << 데이터 형식 ( 숫자 ) ;
열 ( "숫자 C" ) << 모델링 유형 ( 마디 없는 ) ;
감사해요,
조
Re: 열이 없는 경우 열 변경을 건너뛰도록 스크립트를 작성 중입니다.다음은 시도했다고 말한 내용을 가져와서 작동하도록 수정하는 스크립트입니다.또한 각 명령문이 수행하는 작업을 이해하는 데 도움이 되도록 스크립트에 주석을 달았습니다.
// Set a variable "dt" to point to the data table you want to work on
// In the example you showed, it was a table called "Jan 5 Subset"
dt = Data Table("Jan 5 Subset");
// Now request to get from the data table, now referenced by the
// variable "dt" and return the list as strings
// Using the Contains function, we will check to see if a column
// named "Numerical A" is found in the returned list of column
// names. If it is, the comparison will be true and the statements
// following the "," will be executed
IF( Contains(dt << Get column names(string), "Numerical A"),
// Set the Data Type and Modeling Type for the column "Numerical A"
Column("Numerical A") <<DATA type=""></DATA>Re: 열이 없는 경우 열 변경을 건너뛰도록 스크립트를 작성 중입니다.두 번째 스크립팅 부분은 완벽하게 작동합니다. 정말 감사합니다!Re: 열이 없는 경우 열 변경을 건너뛰도록 스크립트를 작성 중입니다.안녕하세요 짐,
빠른 답장을 보내주셔서 감사합니다. 나는 최고의 기능을 시도했습니다 :
dt = 데이터 테이블 ( "1월 5일 하위 집합" );
만약에 ( 포함 ( DT < < 얻다 열 이름(문자열), "열" ),
열 ( "열" ) < < 데이터 유형 ( 숫자 ) < < 모델링 유형 ( 연속 )
);
그러나 스크립트에서 "(문자열)"이 어디에 있는지 잘 모르겠습니다.
현재 "Send Expects Scriptable Object"와 함께 이 줄에서 스크립트가 실패한 것으로 나타납니다. 이에 대한 현재 스크립팅은 다음과 같습니다.
만약에 ( 포함 ( dt << 열 이름 가져오기 ( 끈 ) , "숫자 A" ) ,
"숫자 A" ) << 데이터 형식 ( 숫자 ) << 모델링 유형 ( 마디 없는 ) ;
제가 여기서 놓치고 있는 것이 정말 분명하다면 사과드립니다. 미리 감사드립니다.
Re: 열이 없는 경우 열 변경을 건너뛰도록 스크립트를 작성 중입니다.이 작업을 수행하는 데는 몇 가지 방법이 있습니다.
첫 번째는 정규화해야 하는 문을 IF 함수에 배치하는 것입니다.가장 공식적인 방법은 데이터 테이블에서 열 이름을 가져온 다음 열이 발견되었는지 여부에 따라 IF 조건을 기반으로 하는 것입니다.
dt = Data Table( "Jan 5 Subset" );
If( Contains( dt << get column names( string ), "Column" ),
Column( "Column" ) << Data Type( Numeric ) << Modeling Type( Continuous )
);
두 번째 방법은 Try 함수를 사용하여 JMP가 발견한 모든 오류를 무시하도록 하는 것입니다.
Try( Column( "Column" ) << Data Type( Numeric ) << Modeling Type( Continuous ) );
명령문이 실패할 수 있지만 JMP는 계속 실행됩니다.