JSL로 기존 DisplayBox를 수정하는 방법<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />맞춤 요약 테이블에 예측 R2를 포함하도록 맞춤 모델() 대화 상자의 출력을 수정하는 버튼을 만들려고 합니다.현재 창을 선택한 다음 PRESS 통계를 활성화해야 합니다.그 다음에는 충분히 간단하며 컨테스트 메뉴를 통해 PRESS 통계를 이미 활성화한 경우 대부분 작동합니다.모델 맞춤 대화 상자를 직접 코딩하고 두 번째 줄을 사용하여 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를 수정하는 방법정확히 무엇을 하려는지 모르겠지만 Window 개체가 아닌 Fit Model 개체에 Press(1) 메시지를 보내야 한다고 생각합니다. 아래 예에서와 같이(실행 후 "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)에 플래그를 지정하는 방법을 찾고 있습니다.감사해요!