大家好,
當我嘗試向報告發送命令<<保存模擬公式時,我無法正確引用報告。
我有一個自動腳本來執行某些分析,在這個腳本中,我獲得了打開的報告清單以獲取感興趣的報告,請參閱下面的 JSL:
report_windows = Get Window List( "Report" );
report_of_interest = Empty();
For Each( {report_windows}, report_windows,
outline_title = Try( report_windows[Outline Box( 1 )] << Get Title, "" );
If( Starts With( outline_title, "Generalized " ),
report_of_interest = report_windows;
Break();
);
);report_of_interest 是對報告的 DisplayBox[HeadBox] 的引用。 使用此參考,我可以執行諸如發送命令以對報告中感興趣的列(例如參數估計列)執行模擬之類的操作。
report_of_interest[Number Col Box( 8 )] << Simulate(
2500,
Random Seed(.),
Out( :ColOut ),
In( :ColIn )
);
但是,當我嘗試將命令 <<將模擬公式儲存到report_of_interest(遵循腳本索引幫助中的範例)時:
report_of_interest << (Fit[1] << Save Simulation Formula)
我在日誌視窗中收到以下錯誤:
物件「HeadBox」無法辨識訊息「傳送」;也許您的意思是其中之一: <<<<<<<<<<<< <設定視窗ID <<視窗大小<<移動視窗<<顯示視窗<<關閉視窗<<設定視窗標題<<設定視窗圖示<<設定主視窗<<設定列印標題<<滑鼠拖曳<<設定最小尺寸< <設定寬度<<啟用。
如果我嘗試使用大綱的標題,即上面的變數outline_title,我會在日誌中收到以下錯誤:
發送在存取或評估「發送」時需要可編寫腳本的對象,outline_title << /*###*/(Fit[1] << 儲存模擬公式) /*###*/
我不明白的是腳本索引幫助中的範例參考與我的 JSL 程式碼之間的差異。 腳本索引幫助中的第一個範例如下:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Diabetes.jmp" );
fm = dt << Fit Model(
Y( :Y ),
Effects( :Age, :Gender, :BMI, :BP, :Total Cholesterol, :LDL, :HDL, :TCH, :LTG, :Glucose ),
Personality( "Generalized Regression" ),
Generalized Distribution( "Normal" ),
Run( Fit( Estimation Method( Lasso( Adaptive ) ), Validation Method( KFold, 5 ) ) )
);
fm << (fit[1] << Save Simulation Formula);
fm 是一個引用以下內容的變數:Fit Generalized[]。 在腳本索引範例中,它們都能夠使用此參考將模擬列儲存到資料表中。
我可以看到的一個很大的差異是在範例中,它們都能夠使用子命令 Run(Fit()) 將 Fit Model () 命令傳送到資料表。 我無法在 JSL 程式碼中執行此操作,因為它更加通用,而且我並不總是在 Y、響應和 X、因子的同一列上運行它。
我的程式碼中的類似 JSL 如下:
avdt << Fit Model(
Y( Eval( YCols ) ),
Validation( :Validation ),
Personality( "Generalized Regression" )
);
請注意,我沒有列出任何效果,因為這些效果可能會根據我正在使用的資料表而變化。 我之前確實有一段程式碼要求指示哪一列是回應列,因此,我可以在 Fit Model() 中包含 Y(Eval(ycols)),因為 JSCL 程式碼引用了該列。
不幸的是,我無法執行fm = avdt << Fit Model() 之類的操作,並以這種方式引用它,因為一旦我輸入所有效果並單擊GenReg 平台窗口上的“運行”,fm 就會傳回錯誤,表示它是已刪除的物件參考[]。 事實上,如果您在腳本索引幫助的範例中註解掉Run() 行,然後運行它,在“擬合模型”對話方塊中按一下“運行”,範例程式碼將不會將模擬列儲存到資料表中。
很抱歉這篇文章很長,但我覺得我需要在我遇到的問題背後提供一些背景資訊。 任何有關糾正report_of_interest的正確引用的幫助,以便我可以發送<<保存預測公式,將不勝感激。
謝謝!,
DS