编写分区平台脚本从统计的角度来看,分区平台非常擅长以正确的方式拆分参数,但是在给定数据集的领域知识的情况下不合适。 现在,我不能指望JMP拥有领域知识,但我想编写分区平台的脚本,以便我可以为用户提供JMP选择的候选人,以便他们可以选择一个有意义的,因为他们的领域知识并且接近从统计的角度来看,从列表的顶部进行拆分。 我正在努力的是如何在用户做出选择后重建树。 在各种分割后我尝试了几次迭代查看脚本,我似乎无法掌握结构。 有没有人想到这个?
谢谢
射线
Re:编写分区平台脚本我可以想象,可以编写一个在后台使用“分区”但保持其报告隐藏的UI。这可能是也可能不是很多工作,具体取决于您想要的功能以及您希望支持的工作流程。
通常,在尝试“接管”为交互式使用而设计的平台时,有些事情是可能的,有些则不是。
不确定它是否有帮助但是,如果你可以训练用户按下“更新”按钮,你可以做这样的事情:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Car Poll.jmp" );
par = dt << Partition(
Y( :country ),
X( :sex, :marital status, :age, :type, :size )
);
parRep = Report(par);
parRep[ListBox(4)] << prepend(ButtonBox("Update", updateScript));
updateScript =
Expr(
Beep();
setClipboard("");
par << copyScript;
treeSoFar = Parse(getClipboard());
treeSoFar;
);
'updateScript'可以在JSL中采取任何可能的操作(这里只是重复现有的报告)。
Re:编写分区平台脚本ian_jmp,
感谢您回答我的问题。问题是我需要
每次用户选择拆分时擦除并重新创建树。我是什么
做就是破解候选人表,然后弹出一个窗口显示
每个顶级nn候选人的框和趋势图。用户比
选择他们最喜欢的那个。最好的是JMP会让我
在选择中输入并“单击”特定于拆分的选项。
不幸的是 - 根据JMP的支持 - 这是不可能的。它正在补充
有助于在候选人中进行选择的额外能力
驱动重建树的需要。如果可以的话,这将是最好的
完全接管平台,这样用户就不必使用任何一个了
分割/剪枝,红色三角形下拉按钮。
Re:编写分区平台脚本这是一个来自树的脚本,其中进行了两个特定(非最佳)拆分:
划分(
Y(:Oxy),
X(:年龄,:体重,:运行时,:RunPulse,:RstPulse,:MaxPulse),
信息缺失(1),
初始拆分(:年龄> = 45,{},{:RstPulse> = 60}),
SendToReport(
Dispatch({},“Partition Report”,FrameBox,{Frame Size(480,56)}),
Dispatch({},“Candidates”,OutlineBox,{Close(0)})
)
);
看起来所有先前的拆分都只列在代码的Initial Splits部分中。第一次拆分将在变量上:Age为我的例子。然后对于> = 45组,没有进一步拆分(空括号)。对于年龄<45岁,该分支被拆分为:RstPulse。如果下一个拆分在:RstPulse叶子上,那么它将是{:RstPulse> = 60,{newvar> = value}}。
我希望这有帮助。
Re:编写分区平台脚本您可能希望使用域知识来“锁定列”。以下是“帮助>脚本编制索引”中的示例:
Names Default To Here( 1 );
obj = Open( "$SAMPLE_DATA/Car Poll.jmp" ) <<
Partition(
Y( :country ),
X( :sex, :marital status, :age, :type, :size )
);
obj << Lock Columns( 1, :age, :size );
(obj << report)[CheckboxBox( 1 )] << Select;
Wait( .5 );
obj << Lock Columns( 0 );
Wait( .5 );
obj << Lock Columns( 1 );
通常,如果您需要解决问题,脚本索引是一个很好的起点。