如何使用 JSL 修改現有的 DisplayBox<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我正在嘗試建立一個按鈕,該按鈕將修改 Fit Model() 對話框的輸出,以在擬合摘要表中包含預測 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);回覆:如何使用 JSL 修改現有 DisplayBoxMS-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];回覆:如何使用 JSL 修改現有 DisplayBox好的我明白了。 <
我花了一段時間才弄清楚,但是下面的方法,使用 <
dt =打開( “$ENGLISH_SAMPLE_DATA/大類.jmp” ) ;
適合模型(
是( :重量) ,
效果( :高度) ,
性格(標準最小平方法) ,
強調(最少的報告) ,跑步
) ;
合身=窗戶( 《大類:擬合最小平方法》 )[大綱框( 1 )] <<取得可編寫腳本的對象;
合身<<按( 1 ) ;
列印(合身<<取得腳本) //取得腳本按預期工作!
如何使用 JSL 修改現有的 DisplayBoxMS - 感謝您的快速回覆!問題是,為了按照我想要的方式部署,它不能包含以下部分。
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 介面擬合模型後只需從工具列中按一下即可,並讓它附加重要資訊。
讓我困惑的是,如果 JMP 創建窗口而不是 JSL 創建窗口,我無法透過 JSL 訪問窗口的上下文菜單。我可以透過 JSL 輕鬆存取頂級選單,但不能存取上下文選單。另外,我不明白為什麼 << Get Script 訊息返回視窗的樹結構而不是 JSL 腳本來創建它,就像上下文選單提供的那樣。我知道 JMP 可以做我想做的事情,但我似乎被 JSL 鎖定了。
如何使用 JSL 修改現有的 DisplayBox我不確定您到底想做什麼,但我認為您必須將 Press(1) 訊息發送到 Fit Model 物件而不是 Window 物件。 如下例所示(運行然後按一下“PRESS”)。 適用於 JMP9 (Mac)。
dt =打開( “$English_Sample_Data/Tiretread.jmp” ) ;
合身=適合模型(
是( :磨損) ,
效果( :二氧化矽, :矽烷) ,
性格(標準最小平方法) ,
強調(最小報告) ,
跑步(
:磨損<< {按預測繪製實際情況( 0 ) ,繪圖回歸( 0 ) ,按預測繪製殘差圖( 0 ) ,
劇情效應槓桿( 0 )}
)
) ;
dg =報告(合身) ;
dg <<前置(
按鈕盒( “按” ,
合身<<按( 1 ) ;
按= dg [編號欄框( “按 RMSE” )] <<取得矩陣;
按=按[ 1 ] ;
SS = dg [編號欄框( “平方和” )] <<取得矩陣;
拉斯特羅= N 行( SS ) ;
海溫= SS [拉斯特羅] ;
預測R = 1 -按/海溫;
價值觀= dg [編號欄框( 1 )] <<取得矩陣;
新價值觀= J ( 1 , 6 ) ;
新價值觀[ 1 :: 2 ] =價值觀[ 1 :: 2 ] ;
新價值觀[ 6 ] =預測R ;
新價值觀[ 3 :: 5 ] =價值觀[ 3 :: 5 ] ;
dg [字串列框( 1 )] <<新增元素( “R方普雷德” ) ; // 新增值不起作用,因此需要重新排序
dg [編號欄框( 1 )] <<設定值(新價值觀) ;
)
) ;
如何使用 JSL 修改現有的 DisplayBox要先明確的是,第一行 dg = Current Window();在日誌中傳回 DisplayBox[]。我正在尋找一種透過 JSL 存取視窗中的上下文選單的方法,以將內容新增至樹狀結構中,以便稍後可以取得它們,特別是如何標記 PRESS(1)。謝謝!
回覆:如何使用 JSL 修改現有 DisplayBox我試圖設計一個腳本來將腳本保存到打開的“擬合組”視窗的腳本視窗中。換句話說,一個用於抓取腳本的腳本。為此,我需要建立適合群組和物件並向其發送訊息。手動操作很容易,可以自動化嗎?