下标引用错误显示框在下面的脚本中,我期望返回的标题是“拟合的威布尔分布”,但我得到的却是“拟合的正态分布”。我不确定哪里出了问题,非常感谢您的帮助。
names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
db = dt << Distribution(
Stack( 1 ),
Continuous Distribution(
Column( :height ),
Horizontal Layout( 1 ),
Vertical( 0 )
)
);
db << fit all;
Title_1 = report(db)[Outlinebox("Fitted?")] << get title;
print(Title_1);
<SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Capture1.PNG" style="width: 999px;"><span class="lia-inline-image-display-wrapper" image-alt="Capture1.PNG" style="width: 999px;"><img src="https://us.v-cdn.net/6038925/uploads/images/62909i5A315F267940B1CB/Capture1.PNG" role="button" title="Capture1.PNG" alt="Capture1.PNG" /></span></SPAN>自动化和脚本回复:下标引用错误显示框我使用 Table Box 引用中的 << Get XML 来查看是否有任何有趣的东西可以用来获取我想要的东西

回复:下标引用错误显示框谢谢@jthi !有效!
顺便说一句,就我的学习而言,我不会使用“ischecked = “true””语法,因为我在脚本索引中和显示框属性中都没有找到这个语法。你能分享一下你是如何得出这个结论的吗?学习这个过程以供将来参考对我来说会很好。
回复:下标引用错误显示框您似乎在 for 循环内的轮廓搜索中缺少一些空格(“Fitted”->“Fitted”之后应该有空格)。
关于索引:最有可能的是按“原始”顺序排列它们

下面是一个使用 XPath 尝试避免复选框混乱的示例
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
db = dt << Distribution(Stack(1), Continuous Distribution(Column(:height), Horizontal Layout(1), Vertical(0)));
db << fit all;
rpt = db << Report;
rpt["Compare Distributions"][CheckBoxBox(1)] << set(3, 1); //make additional random selection
Wait(0);
tb = rpt[Outline Box("Compare Distributions"), Table Box(1)];
items = tb[1] << XPath("//CheckBoxBoxItem");
selections = {};
For Each({item, idx}, items,
If(Contains(item, "\[isChecked="true"]\"),
Insert Into(selections, idx);
);
);
dists = (tb[2] << Get)[selections];
For Each({distname}, dists,
ob = rpt[Outline Box("Fitted " || distname || " ?")];
show(ob << get title);
);
回复:下标引用错误显示框我认为这已经接近我想要的结果了。我试图获取用户选择的分布和相应的参数。我尝试将脚本修改为以下内容,但它不一定能给出正确的输出。你能帮我指出我哪里做错了吗?
此外,这也引发了其他一些疑问:
- 为什么<<获取选定的索引作为矩阵消息以相反的顺序返回结果?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
db = dt << Distribution(
Stack( 1 ),
Continuous Distribution(
Column( :height ),
Horizontal Layout( 1 ),
Vertical( 0 )
)
);
db << fit all;
rpt = db << Report;
rpt["Compare Distributions"][CheckBoxBox( 1 )]<<SET></SET>
Appreciate the help so far
回复:下标引用错误显示框啊,你说得对。我之前不知道所有可能的匹配都存储在后台。很高兴知道!
回复:下标引用错误显示框我将使用排序适合表来作为参考。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
db = dt << Distribution(
Stack( 1 ),
Continuous Distribution(
Column( :height ),
Horizontal Layout( 1 ),
Vertical( 0 )
)
);
db << fit all;
rpt = db << Report;
dist = rpt["Compare Distributions"][String Col Box( "Distribution" )] << Get;
Title_1 = rpt[Outline Box( "Fitted" || dist[1] || "?" )] << get title;
Print( Title_1 );
回复:下标引用错误显示框我认为所有不同的拟合仍然存在,即使它们不可见(它们在 If Boxes 下),报告下标仍然会匹配它们,最后使用?通配符搜索将匹配满足您的搜索的第一个轮廓框(在本例中为拟合正态分布)

您可以使用 JMP 从“显示属性”菜单(框路径)构建路径
Report(platform)["height","Fitted Weibull Distribution"]
您可以写更长的搜索词(我会尽可能避免使用?)
Title_1 = report(db)[Outlinebox("Fitted W?")] << get title;
或者使用 XPath 并获取所有标题并从中获取您想要的内容
fit_obs = Report(db) << XPath("//OutlineBox[contains(text(), 'Fitted ')]");
fit_obs << get title;
回复:下标引用错误显示框我猜 JMP 会在内存中创建所有拟合输出,因此当您要求
Title_1 = report(db)[Outlinebox("Fitted?")] << get title;
Fitted Normal 是 Memory 中的第一个,因此返回的是它。您可以使用以下方法绕过此问题:
Title_1 = report(db)[Outlinebox("Fitted Weibull?")] << get title;
或者
Title_1 = report(db)[Outlinebox( 6 )] << get title;