將 Distribution() 視為模態的選項你好,
是否可以將“Distribution”函數視為模態函數? 我希望創建一個包含任意數量的連續分佈的分佈報告,稍後我將通過 JSL 對其進行修改或更改。 我發現當我運行下面的代碼時會打開一個對話框,但執行不會停止,並且在我有機會選擇感興趣的列之前會運行其餘的代碼。
我還研究過使用列對話框,但無法弄清楚如何直接編碼具有任意數量的連續分佈的分佈報告對象。 非常感謝任何有關如何實現這一目標的意見!
dist = dt << Distribution( Stack ( 1 ), <<MODAL></MODAL>
與將類似下面的內容放入 for 循環中...
Distribution(
Stack( 1 ),
Continuous Distribution(
Column( As Column( arbitraryName ) ),
Horizontal Layout( 1 )
Vertical( 0 ),
),
);
非常感謝,
康納
使用 JMP 16.0.0
自動化和腳本編寫數據探索和可視化視窗回复:將 Distribution() 視為模態的選項這是執行此操作的一種方法。只需將分佈放入模式窗口即可。
Names Default To Here( 1 );
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
new window("",modal,
Distribution(
Stack( 1 ),
Continuous Distribution(
Column( As Column( "weight" ) ),
Horizontal Layout( 1 ),
Vertical( 0 ),
)
));

在按下“確定”按鈕之前,不會運行窗口執行之後的任何代碼。
回复:將 Distribution() 視為模態的選項最有可能使用吉姆建議的模式窗口是最簡單的選擇。
您還可以向平台提供表達式,這些表達式將在用戶完成選擇後運行,但使用它通常更困難並且沒有必要腳本編寫指南 > 腳本編寫平台 > 在 JMP 平台中啟用用戶輸入
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Distribution(Action(doit));
doit = Expr(
New Window("Bivariate", Bivariate(Action(doit2)))
);
doit2 = Expr(Caption("analyses complete"));回复:將 Distribution() 視為模態的選項吉姆,謝謝你的回复。 我認為我的問題可以使用更多的澄清,但我找到了一種方法來做我想做的事情,如下所示。 不過它有點笨拙...
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
dlg = Column Dialog( colList = Col List( "Columns" ), );
numCols = N Items( dlg["colList"] );
startSubstring = ",Continuous Distribution( Column(:";
endSubstring = "), Horizontal Layout( 1 ), )";
mainStr = "Distribution( Stack( 1 )";
For( colCount = 1, colCount <= numCols, colCount++,
myCol = dlg["colList"][colCount];
distStr = startSubstring || Expr( myCol ) || endSubstring;
mainStr ||= distStr;
Show( mainStr );
);
mainStr ||= ")";
dist = Eval( Parse( mainStr ) );
// Code to modify dist goes here
這基本上是一個效率較低的“分發”對話框,但解決了我在要求用戶選擇其列時執行之前遇到的問題。 這一切都是為了將統計數據附加到結果分佈窗口中。 感謝您的幫助!