JSL로 기존 DisplayBox를 수정하는 방법<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />저는 Fit Model() 대화 상자의 출력을 수정하여 Summary of Fit 테이블에 Predicted R2를 포함하는 버튼을 만들려고 합니다.현재 창을 잡고 PRESS 통계를 활성화해야 합니다.그 후에는 충분히 간단하며 이미 컨테스트 메뉴를 통해 PRESS 통계를 활성화한 경우 대부분 작동합니다.Fit Model 대화 상자를 직접 코딩하고 2행을 사용하여 PRESS 통계를 활성화한 다음 보고서로 보내는 경우에도 작동합니다.내가 겪고있는 문제는 Current Window()를 잡는 것이 플랫폼에 작업을 지시할 방법이 없는 DisplayBox를 잡는 것입니다.나는 창을 만들기 위해 스크립트를 잡고 원본을 닫고 새 창을 실행하는 것을 고려했지만(한 번의 빠른 화면 깜박임도 나쁘지 않음) << Get Script는 Fit Model() 스크립트가 아닌 트리 구조를 반환합니다.내가 놓치기 쉬운 것이 있습니까?도움이된다면 JMP 9로 이것을 작성하고 있습니다.JMP 8과 호환되기를 희망하지만 그것은 중요하지 않습니다.감사!
dg = Current Window();dg << PRESS; /###/press = dg[NumberColBox("Press RMSE")] << Get as Matrix;press = press[1];ss = dg[NumberColBox("Sum of Squares")] << Get as Matrix;lastrow = Nrow(ss);sst = ss[lastrow];predR = 1-press/sst;values = dg[NumberColBox(1)] << Get as Matrix;newvalues = J(1,6);newvalues[1::2] = values[1::2];newvalues[3] = predR;newvalues[4::6] = values[3::5];dg[StringColBox(1)] << Set Values({"RSquare","RSquare Adj","RSquare Pred","Root Mean Square Error","Mean of Response","Observations (or Sum Wgts)"});dg[NumberColBox(1)] << Set Values(newvalues);Re: JSL로 기존 DisplayBox를 수정하는 방법MS - Get Scriptable Object는 문제를 완벽하게 해결합니다!나는 '그룹'이 어디에서 문제를 일으킬 수 있는지 알고 있지만 우리가 여기서 하는 작업 유형을 고려할 때 그것이 실제 문제가 될 것이라고 생각하지 않습니다.솔루션을 안내해 주셔서 대단히 감사합니다!
dg = Current Window();fm = dg[OutlineBox(1)] << Get Scriptable Object;fm << PRESS(1);press = dg[NumberColBox("Press")] << Get as Matrix;press = press[1];ss = dg[NumberColBox("Sum of Squares")] << Get as Matrix;lastrow = Nrow(ss);sst = ss[lastrow];Re: JSL로 기존 DisplayBox를 수정하는 방법알 겠어. <
알아내는 데 시간이 걸렸지만 <
dt = 열려 있는 ( "$ENGLISH_SAMPLE_DATA/빅 클래스.jmp" ) ;
적합 모델 (
와이 ( : 무게 ) ,
효과 ( : 키 ) ,
인격 ( 표준 최소제곱 ) ,
중요성 ( 최소한의 보고서 ) , 운영
) ;
맞다 = 창문 ( "빅 클래스: 최소 제곱 맞춤" )[ 개요 상자 ( 1 )] << 스크립팅 가능한 개체 가져오기 ;
맞다 << 누르다 ( 1 ) ;
인쇄 ( 맞다 << 스크립트 가져오기 ) //스크립트 가져오기가 예상대로 작동합니다!
JSL로 기존 DisplayBox를 수정하는 방법MS - 빠른 답변 감사합니다!문제는 이것이 내가 원하는 방식으로 배포되기 위해서는 아래 부분을 포함할 수 없다는 것입니다.
fit = Fit Model( Y( :ABRASION ), Effects( :SILICA, :SILANE ), Personality( Standard Least Squares ), Emphasis( Minimal Report ), Run( :ABRASION << {Plot Actual by Predicted( 0 ), Plot Regression( 0 ), Plot Residual by Predicted( 0 ), Plot Effect Leverage( 0 )} ));dg = Report( fit );
최종 사용자가 일반적인 JMP 인터페이스를 사용하여 모델을 피팅한 후 도구 모음에서 을 누르고 중요한 정보를 추가할 수 있도록 이것을 추가 기능으로 배포할 수 있기를 바랍니다.
나를 혼란스럽게 하는 것은 JSL이 창을 만드는 것이 아니라 JMP가 창을 만든 경우 JSL을 통해 창의 상황에 맞는 메뉴에 액세스할 수 없다는 것입니다.JSL을 통해 최상위 메뉴에 쉽게 액세스할 수 있지만 컨텍스트 메뉴에는 액세스할 수 없습니다.또한 << Get Script 메시지가 컨텍스트 메뉴가 제공하는 것처럼 생성하기 위해 JSL 스크립트가 아닌 창의 트리 구조를 반환하는 이유를 이해하지 못합니다.JMP가 내가 원하는 작업을 수행할 수 있다는 것을 알고 있지만 JSL에서 잠긴 것 같습니다.
JSL로 기존 DisplayBox를 수정하는 방법정확히 무엇을 하려는지 모르겠지만 Press(1) 메시지를 Window 개체가 아닌 Fit Model 개체에 보내야 한다고 생각합니다. 아래 예와 같이(실행 후 "PRESS" 클릭). JMP9(Mac)에서 작동합니다.
dt = 열려 있는 ( "$English_Sample_Data/Tiretread.jmp" ) ;
맞다 = 적합 모델 (
와이 ( : 연마 ) ,
효과 ( : 규토 , : 실란 ) ,
인격 ( 표준 최소제곱 ) ,
중요성 ( 최소 보고서 ) ,
운영 (
: 연마 << { 예측에 의한 실제 플롯 ( 0 ) , 플롯 회귀 ( 0 ) , 예측에 의한 잔차 플로팅 ( 0 ) ,
플롯 효과 활용 ( 0 )}
)
) ;
dg = 보고서 ( 맞다 ) ;
dg << 앞에 붙이다 (
버튼 박스 ( "누르다" ,
맞다 << 누르다 ( 1 ) ;
누르다 = dg [ 번호 열 상자 ( "RMSE 누르기" )] << 매트릭스로 가져오기 ;
누르다 = 누르다 [ 1 ] ;
봄 여름 시즌 = dg [ 번호 열 상자 ( "제곱의 합" )] << 매트릭스로 가져오기 ;
마지막으로 = N 행 ( 봄 여름 시즌 ) ;
sst = 봄 여름 시즌 [ 마지막으로 ] ;
predR = 1 - 누르다 / sst ;
가치 = dg [ 번호 열 상자 ( 1 )] << 매트릭스로 가져오기 ;
새로운 가치 = 제이 ( 1 , 6 ) ;
새로운 가치 [ 1 :: 2 ] = 가치 [ 1 :: 2 ] ;
새로운 가치 [ 6 ] = predR ;
새로운 가치 [ 삼 :: 5 ] = 가치 [ 삼 :: 5 ] ;
dg [ 문자열 열 상자 ( 1 )] << 요소 추가 ( "알스퀘어 프레드" ) ; // 값 추가가 작동하지 않으므로 재정렬
dg [ 번호 열 상자 ( 1 )] << 값 설정 ( 새로운 가치 ) ;
)
) ;
JSL로 기존 DisplayBox를 수정하는 방법명확하게 하기 위해 첫 번째 줄 dg = Current Window(); 로그에 DisplayBox[]를 반환합니다.JSL을 통해 창의 컨텍스트 메뉴에 액세스하여 나중에 트리 구조에 추가할 수 있는 방법을 찾고 있습니다. 구체적으로 PRESS(1)에 플래그를 지정하는 방법입니다.감사!