大家好,我叫 Colleen McKendry,是 JMP 的高级统计撰稿人。这意味着我负责记录软件中很多统计平台。在加入 JMP 之前(大约 9 年前),我从未接触过 JMP。在我的整个职业生涯中,JMP 的学习过程绝对是一个边学边做的过程,直到我对它有了足够的了解,可以撰写相关文章。在学习 JMP 的过程中,我发现 JMP 脚本索引非常有用。当时,我也觉得它有些欠缺,所以我认为它有很大的潜力,但有些信息不够完整,诸如此类。
几年前,大约从 JMP 16 开始,我和我的同事 Michael Crotty 启动了一个项目,旨在改进 JMP Scripting Index 的统计功能。这项工作主要是为了确保信息的完整性、可靠性和实用性。
最近,我们刚刚完成了对所有统计平台的首次全面审核,所以我觉得脚本指数目前处于一个非常好的阶段,所以我觉得这是一个进行这次演讲的好时机,让大家更多地了解脚本指数。无论您是从未听说过,还是已经是高级用户,无论您处于哪个阶段,我都希望您能从这次演讲中有所收获。
对于那些不知道脚本索引是什么的人来说,它是学习 JSL(JMP 脚本语言)的重要工具,JSL 是 JMP 的原生编码语言。每当你打开脚本窗口并开始输入任何内容时,你就是在用 JSL 编码。脚本索引汇集了 JSL 函数、对象和显示框的信息,我稍后会详细介绍。每个条目都包含简短的描述和一个嵌入的示例脚本,这些脚本可以在索引本身内运行。
它还具有搜索功能,提供可自定义的过滤选项,其中一些选项最近已更新,希望能提升客户体验。您可以在哪里找到 JMP 脚本索引?在产品中,有多种方法可以访问脚本索引。第一种是通过“帮助”菜单。如果您点击“帮助”菜单,就会出现一个实际的脚本索引选项,您可以使用该选项打开它,或者在实际编写脚本时通过其他选项访问它。如果您正在脚本窗口中编写代码,并且想要了解有关特定函数或对象的更多信息,您可以按住 Alt 键并双击该函数或对象,脚本索引将打开并填充您感兴趣的条目。
同样,在脚本中,您也可以右键单击函数或对象,然后会出现一个选项“帮助脚本索引”,其操作方式相同。最近,jsl.jmp.com 上推出了脚本索引的在线版本。这是我们首次在线提供脚本索引信息。这与产品索引是一对一的。这只是为用户访问、共享或使用脚本索引中的信息提供了一种不同的方式。
让我们开始吧。这是打开脚本索引后的样子。我将要讨论的脚本索引的不同区域用方框框起来,我们从左上角开始,那里有很多导航类型的控件。首先,这里有一个小小的切换按钮,如果你想改变布局,这个按钮可以改变脚本索引的视图。然后是导航按钮,可以前后移动。如果你正在进行任何类型的搜索,或者四处点击,你可以使用这些按钮来前后移动,而无需重新输入任何内容。
接下来,我们有一个包含所有类别的下拉列表,这些就是左侧选择列表中的所有类别。我们有“函数”、“对象”、“Python”和“显示框”,如果您选择其中一个,它将仅显示此列表中的函数或对象。在“函数”类别中,这些是 JMP 提供的内置函数。这些函数将更多地基于代码,因此您将在日志中而不是在用户界面中看到函数的结果。例如,数值函数、矩阵函数、字符函数以及任何类型的概率函数。这些都会包含在内。
另一方面,对象则完全基于用户界面 (UI)。它们是 JMP 的动态部分,可以通过消息接收指令来执行某些操作。这些内容会在用户界面 (UI) 中显示,例如数据表、数据列、平台、结果窗口,而此类别中的条目与这些内容相关。例如,更改数据列、向结果窗口添加选项等等。
Python 类别包含与 Python 集成特别相关的功能,但我在本次演讲中不会讨论这些功能。最后,我们来谈谈显示框。这些不同类型的矩形框用于在 JMP 中构成报表或新窗口。报表中不同显示框之间的关系由显示树表示。此类别中的所有条目仅与填充显示框、添加选项(例如启动窗口)有关,因此包括单选框选项、复选框等。
接下来,我们将讨论这两个选择列表,左侧列表包含类别名称,右侧列表包含项目名称。这两个列表以层级结构相互关联,因此右侧的项目包含在左侧选定的类别名称中。我们可以在这张图中看到左侧选择了“控制图生成器”。右侧的所有项目名称都与一个“控制图生成器”对象相关。因此,您在右侧列表中选择的任何项目名称都会填充脚本索引中的其余信息。
这就是我们现在要讲的内容。脚本索引窗口的其余部分包含所有信息,例如您正在寻找的有用内容。我们看到顶部有一个项目名称,然后是语法或原型。这只是条目编码的基本代码结构,包括该条目中包含的所有选项。
还有一个简短的描述,基本上只是告诉你这个条目的作用,有时还会告诉你它适用于哪个平台。然后你可以看到一个嵌入的脚本窗口和一个嵌入的日志窗口,其中已经填充了一个示例,因此你可以在 Scripting Index 中运行这个示例,它会运行代码并给出输出,无论是在日志中还是在 UI 中。这让你可以看到一些示例代码,而无需自己实际编写任何代码。
如果您在示例区域中看到一个小下拉图标,则表示该条目有多个示例。您可以点击该图标查看不同的示例,看看是否还有其他您感兴趣的内容。最后,我们还有一些其他帮助选项。“另请参阅”还会弹出一个下拉菜单,其中列出了此示例脚本中使用的任何其他脚本索引条目。在本例中,是变量。我知道变量是脚本索引中的另一个条目,所以点击它就会显示出来,然后我可以导航到脚本索引中的变量条目,并获取更多相关信息。
我们还有一个“主题帮助”按钮,点击后您可以查看您正在查看的领域的在线文档。在本例中,如果您点击该按钮,将会跳转到“控制图生成器”的在线文档。此外,我们还提供了筛选功能和搜索栏,方便您在脚本索引中搜索您感兴趣的任何类型的术语或短语。此下拉列表中提供了一些选项,可帮助您缩小搜索范围或更精准地找到您想要的内容。
默认情况下,当您搜索某些内容时,它会搜索脚本索引中的所有内容。它会搜索所有名称、原型、描述和示例。如果您想更改此设置,可以在底部部分选择仅搜索示例,或者如果您对此感兴趣,可以选择仅搜索类别和项目名称。
这些选项的顶部是单选部分,因此您一次只能选择其中一个。这只是为了帮助您根据这些条件缩小搜索范围。另外值得注意的是,当您进行搜索时,结果不会按任何重要的顺序进行排序或显示,而是按字母顺序显示。
现在我要做一个简单的演示。我要离开了。去 JMP。正如我提到的,您可以通过“帮助”菜单访问脚本索引,就像这样,或者如果您有一个脚本,比如说我打开了这个脚本,我正在编写一些关于“响应筛选”的内容。我可以按下 Alt 键并双击“响应筛选”。我们可以看到“脚本索引”打开了,搜索字段中填充了我双击的内容,因此我们得到了各种与“响应筛选”相关的结果,我可以从中获取更多信息。
我要退出并从头开始。这是我提到的切换按钮,它只是切换视图。然后是导航控件。由于之前有一个搜索记录,我可以返回到我的“回复筛选”结果,而无需输入,或者我可以返回到我清除它的时候。
这些是类别。我可以只查看函数、对象、Python 或显示框。我在 PowerPoint 中没有提到这一点,但还有一个版本按钮。您还可以根据条目添加的 JMP 版本来缩小此列表的范围。如果您想只查看 JMP 18 之后添加的条目,如果您想查找一些新内容,可以这样做。
现在我们有了选择列表。在左侧,如果能找到的话,我会返回到控制图生成器。就是这样。您可以看到,在右侧,所有这些都与控制图生成器对象相关。当我点击这些对象时,脚本索引会动态更新,其中包含我点击的特定项目名称的信息。
这是控制图生成器的入口,它也在 PowerPoint 中展示过,所以这是自动填充的脚本。我可以使用此运行示例来运行它,它会帮我运行控制图生成器脚本。我可以看一下。也许我可以尝试与描述进行比较,看看能否找到一些内容。我有这个下拉菜单,这意味着控制图生成器有多个示例。在本例中,有多个控制图生成器示例。
我可以向下滚动到这里,点击“稀有事件图”,然后运行该示例。这样就会显示 G 图。这是那个小小的“另请参阅”。正如我所说,此示例脚本中使用了许多其他脚本索引条目。例如,如果我想了解更多关于如何指定 Sigma 的信息,我可以点击它。我直接转到 Sigma 条目,可以阅读它指定标准差的内容。我可以阅读默认值,并在那里获得更多知识。然后,我可以使用“后退”按钮返回到我最初查看的示例。如果我点击这个“主题帮助”按钮,控制图生成器的文档就会加载。请将其最小化。
我只想举几个其他类别的例子。如果只看函数,为了演示,我会举一些非常简单的例子。对于数值,我们这里只有一个简单的绝对值函数可以运行。你可以在底部看到,这就是日志中的输出。[听不清 00:15:41] 稍微向上一点。
我还应该指出,这些示例中嵌入的脚本是完全可编辑的,因此我可以进入并根据需要添加新行。我也可以运行该脚本并获得结果。无论您点击到哪里,您编辑、添加或删除的任何内容都会保留在此脚本窗口中。您可以转到此处,也可以转到不同的类别名称。如果您返回到数值和绝对值,它仍然会在那里。所有这些都会保留到您关闭“脚本索引”窗口或当我开始编辑时(您可能已经注意到出现了一个额外的按钮),因此我也可以点击它,这会将示例重置为默认值,从而删除我编辑的所有内容。
现在举一个显示框的例子,就像我说的,这是关于填充 JMP 窗口或向现有 JMP 窗口添加新内容。这是一个创建带有复选框的新窗口的基本示例,您可以在这里看到。您也可以添加到现有窗口。这是一个框架框,基本上,框架框是 JMP 窗口中的大矩形。在这个脚本中,我可以运行它的第一部分,这是一个双变量脚本,所以这只是一个普通的 JMP 双变量报告。
然后,使用一些额外的代码,我可以运行它,它会在二元报告顶部添加一个多边形。这与脚本索引没有特别的关系,但我想提一下,我确实想展示如何访问显示树,因为我在 PowerPoint 中提到过它。您可以右键单击此披露图标,转到“编辑”,“显示树结构”。这些基本上都是显示框项目,因此,所有这些都会在脚本索引中有所条目,您可以弄清楚边框框如何与框架框配合使用,可以添加什么,或者如何向图表添加标记,或者如何获取有关图表中标记的信息,所有这些细节。我只是想快速展示一下。摆脱所有这些。
在演示中,我最不想做的事情就是进行几次搜索,以显示哪些选项可能有助于缩小搜索范围。我启用了所有默认设置,并假设我想返回控制图,因此我感兴趣的是搜索控制图。出现的第一个结果实际上是与位于拟合模型中某处的控制决策图进行比较。这不是我感兴趣的,我想要的是控制图。这是因为搜索仅查找单独的术语,因此它包含控制和图表,但不一定同时包含,因此我可以使用包含短语选项来确保所有搜索结果都包含控制图作为短语,即整个短语。这有助于确保我拥有感兴趣的示例。我可以清除它,将其恢复为默认值。
我认为使用搜索栏对新用户来说非常有用,但如果你想学习大量脚本知识,搜索栏就没必要了。如果我是 JMP 的新用户,想要进行方差分析,我们知道 JMP 并不总是像标准文献那样进行处理。我在 JMP 工作,我了解 JMP。我知道可以在 Oneway 平台找到方差分析。对于新用户来说,仅凭用户界面可能很难找到方差分析。
我可以在搜索栏中搜索“方差分析”,然后可以看到第一个结果会显示或隐藏方差分析报告。这看起来很有前景。我可以运行它。我可以看到,它与单因素分析相关。我甚至可以重新启动它,看看启动窗口是什么样子,这样就能清楚地了解如果我想了解如何进行方差分析,我需要在用户界面中自己做些什么。
如果我想要更多例子,我可以继续往下找。然后,当我找到第三个结果时,我会发现这实际上是关于多元方差分析的。我对此并不一定感兴趣。我只想要严格的方差分析,因此为了缩小范围并确保我的其他搜索结果不包含任何方差分析条目,我可以使用“全词匹配”。这样可以排除这个结果和其他几个结果,所以现在我搜索的是单独的方差分析,而不是包含在另一个词中。这对于你正在搜索的内容可能很有用。
回到默认设置。现在,就我上一个搜索示例而言,假设你对编程感兴趣。你不一定是新用户,但你想知道如何自己编写一些代码,特别是,出于某种原因,你有一些矩阵,你想自己做奇异值分解。你会问:“我该如何在 JSL 中做到这一点?”
您可以搜索“奇异值分解”。我们看到我们得到了一些结果,但前几个结果看起来像是在平台内执行奇异值分解,而不一定是通过您自己的代码实现的。搜索栏也会根据这些筛选类别进行显示。您可以将其更改为仅显示函数,这样现在 JMP 中就有了四个函数,可以让您在 JSL 中进行自己的奇异值分解。您可以浏览这些函数,确定哪一个最适合您,然后继续进行 SVD 计算。
演示就到这里。我只想快速回到演示。全屏演示。最后,我想介绍一下我最喜欢的几种使用脚本索引的方法,并再次强调,我坚信它不仅适用于高级脚本编写人员,而且对新用户也非常有用。首先,我在演示中提到过,就是使用搜索功能。它非常适合搜索JMP所称的其他内容,例如方差分析与单因素分析。
它有助于查找某种统计技术所支持的平台。如果您对某种技术感兴趣,但不确定它具体适用于哪个平台,那么您可以使用脚本索引来快速找到答案。您也可以直接使用脚本索引查找特定平台的示例或数据表。显然,它对于学习基本的脚本编写非常有帮助。除此之外,我觉得即使是现在,每当我编写任何脚本时,我都会打开脚本索引作为参考。
对我来说,它特别有用的一次是在我创建插件的时候。在我们的插件中,我们有一些自定义启动窗口和其他对话框,并且我们在现有的 JMP 报告之上添加了一些东西。因此,脚本索引中的显示框类别对于学习如何向启动窗口添加选项(例如复选框之类的功能),以及如何向现有的 JMP 报告添加不同的内容绝对非常有用。
最后,我认为这是无需离开产品即可获取一些基本文档的好方法。如果您正在工作,可能并不想打开浏览器搜索我们的文档,这样您就可以留在产品中,获取一些希望对您有帮助的基本信息。如果没有帮助,您可以使用 TopicHelp 按钮直接转到文档中您可以获取更多信息的页面或区域。
对我来说就是这样,这已被录制下来,但当你观看时我会在聊天中,所以如果你有任何问题,请随时发送到那里。