将 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
这基本上是一个效率较低的“分发”对话框,但解决了我在要求用户选择其列时执行之前遇到的问题。 这一切都是为了将统计数据附加到结果分布窗口中。 感谢您的帮助!