<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />嗨伙计,
我只是想知道是否有任何方法可以编写一个脚本,从数据表中的分区分析中提取拆分候选者,由 logworth 排序。 当您拟合分区模型并右键单击候选部分时,可以手动完成此操作。
斯科特
我经常这样做。这是我使用的代码示例
(您问题的答案是“提取候选人表”部分中的 4 行!)
// 样本数据
dt =打开( “$SAMPLE_DATA/Fitness.jmp” ) ;
名称= dt <<获取名称;
// 选择响应变量
colNames = dt <<获取列名(细绳) ;
西北=新窗户( “选择 Y” , <<模态,
磅=列表框( colNames ,最大选择( 1 ) , <<设置选中( 5 ))
) ;
如果(nw[ “按钮” ] ==- 1 ,扔()) ;
选择=磅<<被选中;
如果(物品(选择) == 0 ,
扔()
,
yCol =选择[ 1 ]
) ;
// 使用所有其他列作为 x 变量
位置= Loc ( colNames , yCol) ;
xCols =消除( colNames ,位置[ 1 ]) ;
// 删除名称列
从...除去( xCols , 1 ) ;
// 启动分区平台
拍=分割(
Y(评估( yCol) ) ,
X(评估( xCols) ) ,
) ;
// 提取候选表
代表=拍<<报告;
选项卡=代表[ “候选人” ][表格框( 1 )] ;
坎Dt =选项卡<<制作成数据表;
代表<<关闭窗口;
// 对候选表进行排序
坎Dt <<种类(经过( :对数价值) ,顺序(降序) ,替换表) ;
// 锦上添花 - 附加一个脚本以便行选择
// 在此表中将在源表中生成列选择
评估(解析(评估插入( "\[
candDt << 新脚本(
"选择列",
cdt = 当前数据表();
rows = cdt << 获取选定的行;
lstNames = Column(cdt,"Term")[rows];
数据表(“^dtName^”)<<清除列选择;
对于 (i=1,i<=NItems(lstNames),i++,
列(数据表(“^dtName^”),lstNames ) << 设置选择(1)
)
)
]\" ))) ;
最终结果是一个如下所示的表:

我包含了附加到此表的 Select Columns 脚本的代码,因为我发现它特别有用。因此,例如,如果您选择此候选表上的前三行,则运行脚本将选择源数据表中的相应列。如果您有大量列,则很有用。
- 戴夫