在 JMP 19 中,从菜单栏中选择“帮助”>“脚本索引”即可查看专门添加到版本 19 的 JSL 函数。
添加了各种功能,但正如您在下图中的红色框中看到的,添加了许多 Col 功能。

在本文中,我们将介绍 JMP 19 中添加的新 Col() 函数及其使用的好处,并提供一些示例数据。
Col() 函数是什么?
Col() 函数返回指定列的汇总统计数据。
例如,如果为连续列“Column1”指定Col Mean(Column1) ,则将返回所有单元格的“Column1”的平均值。

此外,许多 Col() 函数允许您指定 By 变量作为参数,该参数返回每个组的汇总统计数据。
例如,如果为 JMP 样本数据“Big Class.jmp”指定Col Mean(身高(英寸),年龄) ,则可以找到每个年龄(12 至 17 岁)的平均身高,这是第二个参数。

考虑到这一点,我们将介绍 JMP 19 中添加的新 Col() 函数。我们将通过示例解释 Col At() 和 Col Score()。
Col At 函数
列在()函数是 Lag() 函数的增强版本,可以返回前几行的数据。它的使用方式与 Lag() 函数类似,允许指定 By 变量。
使用例
数据:1月1日至3日三天内每分钟测量一个家庭的用电量
目的:找出功率变化最大的时间段,计算某一时刻的功率值与一分钟前的功率值之差(Lag(1)),并在图表上检查该差异。
下方数据中,我们针对每个“日期”和“时间”测量“功率”。新创建的列“Power_Diff”用于实现此目的,并使用了Column_In()函数。
(请参阅本博客中的附件“Example_ColAt.jmp”。)

Col At(col,索引,byVar,相对(1))返回 byVar 组内行位置 index 处的 col 值。
在此示例中,每天返回上一行的功率值 (-1)。
此函数用于查找某一天的滞后(第 n 行的功率 - 第 (n-1) 行的功率)。
传统的 Lag() 函数无法找到组内的滞后,但Lag()函数可以。
下图使用计算列显示了每天的时间差异。您可以看到,1 月 3 日中午 12 点之后,差异特别大。

注意:参数 Relative(1) 可用于返回上一列值的索引号,如上所示。如果不包含此参数,则将返回 byVar 组中的第一行和最后一行值。详情请参阅附件数据中的“First Power”和“Last Power”列。
Col Score 函数
Col 分数()函数返回指定列的排名(整数分数)。通过指定 By 变量,您可以获取组内的排名。
使用例
数据:30名男女运动员1500米跑时间和投球距离
目的:确定1500米跑时间的性别排名,并研究这些排名与投球距离之间的关系。
(有关更多详细信息,请参阅附件“Example_ColScore.jmp”。)

Col 分数(xCol,byVar)返回每个 byVar 的 xCol 值的排名。在此示例中,我们根据 1500 米跑步时间按性别进行排名。
使用新创建的“性别排名”列,我们绘制了各性别排名的投球距离条形图。我们发现,男性排名越高,投球距离越远,但女性排名没有观察到这种趋势。

其他添加的 Col() 函数
除上述之外,JMP 19 还添加了以下 Col() 函数:
独特的 N 领 :返回列中唯一值的数量。
列插值 :返回给定 x 位置的 y 插值。
列序列 :返回 byVar 组中某一行的位置(Row() 函数的增强版本)。
请参阅脚本索引以了解更多信息。
这些 Col() 函数与称为列作用域的功能相关。但我们下次会介绍该功能。
作者:Naohiro Masukawa(JMP 日本)
Naohiro Masukawa - JMP 用户社区