JSL을 사용하여 기존 DisplayBox를 수정하는 방법<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />피팅 요약(Summary of Fit) 테이블에 예측 R2를 포함하도록 Fit Model() 대화 상자의 출력을 수정하는 버튼을 만들려고 합니다.현재 창을 잡은 다음 PRESS 통계를 활성화해야 합니다.그 후에는 매우 간단하며 컨테스트 메뉴를 통해 PRESS 통계를 이미 활성화한 경우 대부분 작동합니다.Fit Model 대화 상자를 직접 코딩하고 두 번째 줄을 사용하여 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 ) ;
인쇄 ( 맞다 << 스크립트 받기 ) //Get Script가 예상대로 작동합니다!
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 )] << 요소 추가 ( "R스퀘어 프레데드" ) ; // 값 추가가 작동하지 않으므로 재정렬됩니다.
dg [ 번호 열 상자 ( 1 )] << 값 설정 ( 새로운 가치 ) ;
)
) ;
JSL을 사용하여 기존 DisplayBox를 수정하는 방법명확하게 말하면 첫 번째 줄은 dg = Current Window(); 로그에 DisplayBox[]를 반환합니다.나중에 잡을 수 있도록 JSL을 통해 창의 컨텍스트 메뉴에 액세스하여 트리 구조에 항목을 추가하는 방법, 특히 PRESS(1)에 플래그를 지정하는 방법을 찾고 있습니다.감사해요!
Re: JSL을 사용하여 기존 DisplayBox를 수정하는 방법열려 있는 Fit Group 창에 대한 스크립트 창에 스크립트를 저장하는 스크립트를 고안하려고 했습니다. 즉, 스크립트를 잡기 위한 스크립트입니다. 이렇게 하려면 Fit Group과 개체를 만들고 여기에 메시지를 보내야 합니다. 수동으로 하면 쉬운데 자동화도 가능한가요?