使用列和行本演示将说明如何管理数据列和数据表行。 我将使用一个脚本来创建一个新的数据表,其中一列开始。 因此,在部分课程日志中,我将单击制作新数据表和列。 您可以看到我们正在使用新的表格功能。 我们将在变量 dt 中存储由此创建的数据表对象引用。 该表将称为测试数据。 我将有一个名为 pH 的列。 数据类型将是数字,建模类型将是连续的。 然后我使用 values 参数,我也可以说设置值——这两个都是同义词——使用索引运算符填充,它是一个中缀运算符。 所以这只是我们要以一为增量从一数到七。 因为我提供了这些值,所以这就是该数据表将拥有的行数。 如果我最初没有填充值,则有一个可选参数可以添加我可能使用的指定行数。 您还将看到是否让 JMP 使用该获取脚本消息为您的数据表编写脚本,该脚本将包含添加行的参数。 我们还将使用固定十进制参数指定一个格式,该参数带有一个小数点后三位的字段。 我们将打开列上的锁定选项,以便在未解锁的情况下无法对其进行修改。 我们将使用范围检查参数来分配该列属性。 这里的语法 LELE ( ) 只是说小于或等于列中的值小于或等于 最后我们有一个设置属性参数的示例,我们在其中设置属性规格限制。 因为有不止一个选项可以指示规格限制,所以我们列出了三个限制 - 规格下限、规格上限和目标。 还要记住,新列的所有这些可选参数都可以在创建列后作为消息发送到列,或者如我们在此处看到的那样,作为新列的参数。 所以我要运行脚本。 您可以在下面的日志中看到,我们已经创建了一个名为测试数据的数据表对象的实例。 当然,如果我将鼠标悬停在脚本中的变量 dt 上,这就是我所看到的。 我有一个单列七行的数据表。 我们可以看到表格本身中指示的脚本中的所有元素。 因此,一方面,我知道数据类型是数字,因为我可以看到建模类型图标显示它是连续的。 而连续建模类型只需要数值数据。 同样,数值是右对齐的。 如果我们将数字视为字符,那么它们将是合理的。 如果我们看一下列面板中的图标,就会看到锁定图标,表示我锁定了列。 小复选标记表示范围检查。 然后星号表示任意数量的没有自己独特符号的附加属性。 因此,要进入列信息对话框,当然有几种方法。 我们可以通过点击这个星号来走捷径。 我们看到该属性是规格限制。 同样,此下拉菜单中可能列出了多个属性。 我可以选择它。 这让我进入了专栏信息。 当然,我们也可以选择列并使用列菜单或右键单击列并选择列信息。 因此,设置属性参数中指示的值存在规范限制。 我们也有那个范围检查。 再一次,它是小于或等于,小于或等于——在通用语法中表示 LELE——然后我们有实际值。 在这里我们可以看到该列已被锁定。 数据类型是数字。 建模类型是连续的。 格式为固定十进制,字段宽度为该列最多可显示的字符数,小数点后三位。 所以我要取消列信息对话框。 我会继续并取消选择那个 pH 值列。 现在,列属性下拉菜单中有一个选项可以设置您自己的用户列属性。 如果您以交互方式执行此操作,则菜单选项仅称为“其他”。 并且您命名该属性以及它将采用的任何值。 我在日记中有一个名为 Add User Column Property 的脚本。 我们将其发送到 pH 柱。 此用户列将正确地称为 Meter Calibration。 我只想把今天的日期格式化为月、日、年字符串。 所以这里的文本,设置属性的第二个参数,在这种情况下,我使用 Today 函数来检索自运行这行代码的一月午夜以来的秒数。 我将其包装在 format 函数中,并指定我希望将其显示为的字符串格式。 同样,当您编写脚本时,这可能是一个反复试验的过程。 如果我只是提供了我强调的内容——我想我可能有——有——是的。 我想确保我指定了正确数量的括号。 让我运行一下,我刚刚强调的内容。 所以我选择那个。 而我 Ctrl+R。 而且我看到该字符串完全按照我在日志中的要求出现。 所以我可能会运行这个设置属性消息,这个带有属性消息的代码,最初没有 eval 函数。 如果我这样做了,当我查看仪表校准属性的列信息时,我会看到实际上是代码。 它实际上不会评估。 所以 set 属性可能不会评估它的第二个参数,需要我们将它包装在 eval 函数中。 现在,在设置属性消息之外运行它,这将只是——让我继续运行它——它将返回完全相同的东西。 因此,这可能是您最初只有 Today 函数的格式,然后发现它没有在列属性中返回您想要的内容。 然后你会意识到你需要添加那个 eval。 所以我不会选择任何这个,我会运行这个脚本。 我在日志中收到的消息只是可编写脚本的。 这意味着我做了一些可编写脚本的事情。 所以你有时会发现你会运行一些代码,而你期望发生的事情并没有发生。 您可能只会看到这条可编写脚本的消息。 因此,您需要尝试找出在这种情况下出了什么问题,因为您并没有真正从 scriptable 这个词中获得信息。 但在我们的例子中,让我们继续讨论。 同样,我们可以通过单击这个星号来简单地进入列信息。 我这样做是为了表明现在我们在该菜单中有另一个项目。 同样,任何没有自己独特图标的列属性都将显示在此星号菜单中。 然后我将单击 Meter Calibration,以便在打开列信息对话框时选择该属性。 还有使用 Today 函数并将其格式化为字符串的评估结果。 所以我会取消它。 我将使用 Add User Column 属性 Script Editor Window 来玩这个表。 现在不需要那么宽了。 所以我现在想将新列作为消息发送到数据表。 我将把这个新列命名为 Hydronium。 我将在创建后添加一个公式。 当然,我可以将公式添加为列创建的一部分。 而且我实际上还将把代码产生的列对象引用存储在一个变量中。 我就叫它 HYD,hyd 代表水合氢。 我会将发送消息的结果分配给 dt,因为这是我们存储测试数据对象引用的内容。 所以我将消息发送到 dt new 列,然后打开括号和字符串。 新列唯一需要的参数是列名 Hydronium。 我会继续运行它。 将该结果存储在这个变量中意味着我不需要再次输入整个名称 Hydronium。 所以我不必存储该对象引用。 我仍然可以与专栏交流。 但这只是让我节省了一点打字时间来给它起一个缩短的名字。 现在,让我们假设,正如我所提到的,我想在此列中添加一个公式。 所以我会去一个新的线路。 而且我要小心不要意外地再次运行整个脚本并创建第二个 Hydronium 列。 所以我要评论第一行。 我将向该变量 hyd 发送消息。 并且消息是设置公式。 我将把公式提高到负 pH 的幂,所以提高到 - 然后我将打开括号 - 减号 - 我将使用冒号范围运算符,因为我指的是ph 列,为了安全起见,以防在我的全局命名空间中有任何其他变量名称 ph 浮动。 我没有使用 Names Default to Here,尽管我们在实践中建议将其作为最佳实践。 所以我要输入那个分号并运行这行脚本。 同样,我们在日志中看到了可编写脚本的消息。 但是我们可以检查该表并看到这些值已被填充。 在使用我们的列和行时,还有其他一些事情可以玩。 假设我想为数据表中的单元格着色以标记超过某个数字的值。 因此,我将转到脚本编辑器窗口中的新行。 我将创建一个名为 callout 的变量。 并且我将分配存储在 dt 中的数据表的结果接收消息获取行的位置。 然后我的布尔比较将是列中的值 pH 值大于所以我将只运行该行。 您可以看到这些行并获取向我返回行号列向量的行。 然后我将向 pH 发送消息。 由于该列对象引用未存储在变量中,因此我将仅按名称引用它。 所以 pH 将接收到颜色单元格的消息。 所以这是我们可以发送到专栏的另一条消息。 我将使用颜色的名称作为第一个参数。 还有索引值,您可以使用 rgb 值。 我将使用名称作为字符串。 所以我要把这些细胞染成红色。 然后第二个参数是,您要为哪些单元格着色? 您可以执行整个列,也可以提供行号。 所以我将使用变量 Callout,它存储 pH 值大于 3 的行。 我将只运行那条线。 顺便说一句,请注意我忘了放分号。 所以这说明结束分号是不必要的。 只有当我有额外的论点来时。 如果我们现在查看数据表,您可以看到这四个单元格已被涂成红色。 因此,如果您有一个大数据表并且您可能对某些列有规范限制,那么这可能是一件好事。 您可以根据这些规格限制为超出规格的事物着色单元格,例如,在您开始查看图表之前,在数据表中直观地标记这些内容。 您当然不必为单元格着色,但这是一个可以使用的选项。 所以在这个演示中,我们看到了一个创建一个带有列的新数据表的示例,向该数据表添加一个列,并尝试了一些我们可以对列和行执行的操作。