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