表格概述

现在,除了存储数据及其元数据之外,数据表还负责使用“表”、“行”和“列”菜单中的命令或 JSL 中的等效消息进行数据准备。数据表还负责启动平台进行分析和绘图。有时,您只想分析或绘制数据表中存储的特定数据值子集。在这种情况下,您可以使用行状态来控制平台在其分析中包含的数据值或在其图表中显示的数据值。但您也可以创建一个新的单独的数据表来保存该特定的数据值子集。有几种方法可以指示要在子集表中包含的行和列。最简单的方法是选择所需的行或列,然后向数据表发送消息以创建子集。但您也可以向消息提供参数来指定行和/或列,而无需先选择它们。如果没有选择任何列,并且消息未指定特定的列,则默认情况下,所有列都将包含在子集中。对于行,其工作原理相同。那么,如何为子集数据表选择行或列呢?让我们从行开始。您已经看到,有几种消息可以发送到数据表来选择行,但创建子集最常用的可能是“选择位置”消息,它以布尔表达式作为参数。在此处显示的示例中,“选择位置”消息从“大类”数据表中选择身高大于英寸且体重大于磅的行。另一种方法是使用数据过滤器消息进行选择。但是,数据过滤器消息比“选择位置”消息需要更多的代码。此处显示的两条消息执行的操作完全相同。因此,通常情况下,如果您希望脚本根据某些逻辑条件选择行,则可以使用“选择位置”。但是,如果您希望用户在脚本运行后继续浏览数据,则脚本可以启动数据过滤器,指定过滤列,然后让用户以交互方式进行选择。现在,我们来讨论如何选择列以及如何确定选择了哪些列。有两种消息直接发送到列,而其他消息则发送到数据表。您可以向列发送“设置选定”消息,以将其选为子集。此外,您可以通过向该列发送“获取选定”消息来确定该列是否已被选中。您可以通过向数据表发送带有列名或编号作为参数的“转到”消息来选择单个列。同样,您可以向数据表发送“选择列”消息,以选择单个列、所需列的列表,甚至所有列。如果您需要确定哪些列已被选中,可以向数据表发送“获取选定列”消息。然后,您可以通过向数据表发送“清除列选择”消息来清除所有现有选择。最后,如果您在列面板中对列进行了分组,则可以使用“选择列组”或“取消选择列组”消息来同时处理一组列。选择行和/或列后,向原始数据表发送“子集”消息以创建子集。 JMP 会根据您指定的数据值创建一个新的数据表。这不是必需的,但如果您已经选择了要包含在子集中的行和/或列,最佳做法是使用“选定行”或“选定列”参数,并在括号中加上布尔值。此处显示的代码是级联消息的示例。“选择位置”消息会发送到数据表,以选择列性别为 F 的行,紧接着是“子集”消息,指定子集表的两列和表的名称。但是,您不必先选择行和列。指定要包含在子集表中的行和列的另一种方法是使用带有行号矩阵的“行”参数,或使用带有列引用的“列”参数。在这种情况下,如果表已选择行或列,最佳做法是使用带有布尔值零的“选定行”或“选定列”参数。