<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好,
我想通过脚本创建分箱列,而不是手动执行(列 -> 实用程序 -> 创建分箱公式),但我无法弄清楚如何执行此操作。
1)我可以知道有没有办法编写“Make Binning Formula”脚本? 是的,有人可以建议我如何做到这一点吗?
2)我想问的另一个问题是,在手动执行“Make Binning Formula”时,每个选定的参数都有自己独特的宽度(参见下图)。 如何检索不同参数的宽度值? 我目前使用示例数据库中的“胆固醇”数据作为参考。

我非常感谢你们中的任何人提供的任何帮助。 谢谢。
问候,
瓦尔
伊俊谭0 ,如果您更清楚地描述您想要做什么,也许会对我们有所帮助。
您是否正在寻找一种方法,让脚本用户能够访问“创建分箱公式”窗口,但在完成后仍保持控制?
或者,您可能正在寻找一种通过 JSL 来对连续变量进行分箱的方法,其方式类似于从制作分箱公式中获得的结果。
了解您的最终目标将使我们更好地了解如何为您指明方向。
-杰夫
瓦尔,
创建分箱公式创建一个新列,设置其值标签。如果您选择“使用范围标签”,新列的值标签将如下所示:
{18 <= "18 — 26" < 26, 26 <= "26 — 34" < 34, 34 <= "34 — 42" < 42, 42 <=
"42 — 50" < 50, 50 <= "50 — 58" < 58, 58 <= "58 — 66" < 66, 66 <= "66 — 74" < 74,
74 <= "74 — 82" < 82, 82 <= "82 — 90" < 90, 90 <= "90 — 98" < 98, 98 <=
"98 — 106" < 106, 106 <= "106 — 114" < 114, 114 <= "114 — 122" < 122, 122 <=
"122 — 130" < 130, 130 <= "130 — 138" < 138, 138 <= "138 — 146" < 146, 146 <=
"146 — 154" < 154, 154 <= "154 — 162" < 162, 162 <= "162 — 170" < 170, 170 <=
"170 — 178" < 178, 178 <= "178 — 186" < 186, 186 <= "186 — 194" < 194, 194 <=
“194 — 202” < 202}
然后可以解析该列表并提取下边界和上边界。
这是我针对自己的数据表使用的脚本,Make Binning Formula 创建了一个名为 NPN1 Binning 的列
名称默认为此处( 1 ) ;
dt =当前数据表() ;
// 获取值标签,并将它们解析为列表
标签=查尔( dt : npn1 分箱<<获得财产( “价值标签” ) ) ;
标签=子字符串(标签, 14 ,长度(标签) - 14 ) ;
标签=解析(标签) ;
// 创建一个新表来保存值
德特邦德=新表( 《边界》 ,新专栏( 《下界》 ) ,新专栏( 《上界》 ) ) ;
德特邦德<<添加行( N 项(标签) ) ;
// 遍历列表并剥离上下边界
为了(我= 1 ,我<= N 行(德特邦德) ,我++,
德特邦德:下界[我] =数量(单词( 1 ,查尔(标签[我] ) , “<” ) ) ;
德特邦德:上边界[我] =数量(单词( 3 ,查尔(标签[我] ) , “<” ) ) ;
) ;
有一个选项可以根据连续数据自动创建分箱列。它位于“Cols”>“Utilities”>“Make Binning Formula”下。它非常简单,并提供许多选项,然后可用于创建新的 Binned 列,其中包含与您的输入和选择相匹配的公式。从这里您可以轻松创建一个模式窗口,该窗口会弹出提示您完成下一个实例。
嗨吉姆,谢谢你的信息。 我研究了“Interactive Binning”JMP 插件,它真的很有趣。 然而,它似乎也相当手动。 单击“制作分箱公式”后,有什么方法可以直接从弹出窗口中获取每个选定列的宽度(如上图所示)?
谢谢,
瓦尔
我认为 Jeff Perkinson 编写的“Interactive Binning”JMP 插件要么是您问题的答案,要么至少是一个很好的起点。该插件可在文件交换下找到。