你有没有一个数据集,你必须执行类似于以下任何一项的任务:
从一个高大的桌子,包含多个工具的多个测量 - 以不规则的间隔记录 - 创建一个子集表,其中只有每个工具/操作员组合的第k个最新测量。对于给定的度量,找到每个组中的顶部(或底部)k个出现次数;一个例子是列出每个地区的三个产品产生最多收入或最低利润率。如果是这样,你并不孤单。我们会定期收到有关如何解决此类问题的建议。由于这些任务中的每一个都需要对事物进行排序,因此JMP用户自然会在JSL中查看rank()函数,这当然是一种选择。问题是rank()函数需要用于对表的行进行排序以明确指定的列,当我们探索数据时,我们经常想要尝试各种排名,而不创建多个新列或编辑列公式。
通过创造性地使用JMP 13中的Col Cumulative Sum()函数,我们可以灵活且动态地对行进行排序:产生不同的排名 - 我们只是按不同的变量排序。
为了说明,请考虑Car Physical Data.jmp,其中包含有关汽车的名义和连续数据。它安装在JMP示例数据文件夹中,您可以通过选择“帮助”>“示例数据库”来访问该文件夹。
下面,我添加了一列(突出显示)来计算在给定行之前或之前发生的按国家/地区分组的累计汽车数量。请注意,当我们沿着表格的行前进时,具有Country = Japan的汽车按顺序编号,Country = USA和Country = Other的汽车也是如此。
这种方法很有用,因为要回答“哪个是每个国家最轻的五辆车?”这个问题,我们必须做到以下几点:
按重量对表格进行排序,按升序保留原始表格。选择排名列<= 5的单元格。如果需要,将这些行子集。这种方法也很灵活,因为如果我们决定现在必须从每个国家找到三个最强大的汽车,我们只需按降序排序马力,并选择排名小于或等于三的单元格。
排名列中的公式很简单(如下),但您不必将其写下来:使用数据表工具加载项,即使非脚本编写者也可以使用任意组合轻松地将这样的列添加到任何表中分组列。
运行加载项后,只需选择所需的表和分组列,然后单击“创建列”按钮。而已!
该数据表工具加载项可以免费下载 JMP文件交换 - 需要免费的SAS配置文件。
注意:此博客是探索数据表工具加载项的各种功能的系列中的第三篇。