你好,
我正在编写一个脚本,允许用户
- 选择适合模型的列
- 确定主要变量并指定目标值
- 确定要按哪一列拆分模型
- 允许 JMP 创建模型,优化合意性以达到预期目标,然后输出模型结果
- 从方便的输出表中复制结果
我有一些功能性脚本,可以在不允许用户输入或选择的情况下执行我想要的操作,但是使脚本具有交互性一直是一项挑战。 我想我大部分时间都在那里,但我有一些我正在努力解决的具体问题
- 问题 1:在此脚本的先前版本中,我使用带有 While( x == "y[i]") 行的 for 循环为每个模型使用不同的窗口。 我宁愿使用 By( :x ),因为它更灵活并且提供一个输出窗口。 但是,使用 By( :x ) 会中断后面的脚本以从报告中获取可编写脚本的对象。 是否可以为模型窗口中的每个子框创建不同的报告? 或者更好的方法来编码第 173-181 行? 我根据另外两个线程构建这些行:线程 1 ,线程 2 .
- 问题 2:我需要能够在没有合意性函数的情况下建模的可变数量效果的选项(稍后完整脚本也将具有最小化的效果,但这个简化的演示脚本变得太复杂了。 在第 122-126 行,我能够在 ModExpr 中创建所需的表达式,但是因为它是一个列表,所以当我试图将它直接替换到配置文件中时它不起作用。 我的解决方法是占位符的数量大于我期望建模的变量的数量,如果我的建模效果少于 6 个,代码似乎只会忽略无意义的部分……但这看起来非常糟糕。 有没有办法修复第 130-134 行中的注释代码,以便将列表组合成一个可以工作的单个表达式? 我也无法让 Concatenation 发挥出色,但我敢打赌我错过了一些简单的东西。
这是使用示例数据的示例脚本。 该模型非常适合,但这对于演示来说并不重要。 运行时,如果清除“by”的选择,一切都会正常运行并输出结果。 如果“by”部分中还有任何内容,那么第 174 行将会中断。
感谢您的任何帮助!
Names Default To Here( 1 );
//sample data for demo
dt = Open( "$SAMPLE_DATA/Football.jmp" );
xvar = {};
yvar = {};
byvar = {};
ytarg = 60;
dtout = {};
//let users select the columns to model
win = New Window( "Model Variable Selection",
<<MODAL></MODAL>