This new capability has me breaking out my thesaurus, scrambling for new superlatives.This new capability has me breaking out my thesaurus, scrambling for new superlatives.This new capability has me breaking out my thesaurus, scrambling for new superlatives.This new capability has me breaking out my thesaurus, scrambling for new superlatives.这种新功能让我打破了我的同义词库,争相寻找新的最高级。是的,这个系列已经完成这么多了……
通常情况下,当我写这样的系列时,我会在开始发布任何内容之前写下整个内容 - 从头到尾。 通常情况下,我不想在写下一篇文章时让我的读者悬而未决。 通常情况下,我尽量避免在截止日期前写作的压力。 唉,这个条目没有什么不正常的。 此条目是在其他条目发布时编写的。 我通常不会尝试这样的事情,但我要在这里分享的信息不仅对讨论很重要,它完全改变了我今后处理这个主题的方式。 作为回顾,以下是其他条目的链接:
现在,让我们把过去几周我刚刚告诉你们的几乎所有事情都听一遍。
有一个循环如何联合管理计划发布工作。 通常,产品管理团队直到发布日期前大约两三个月才开始与公众讨论新版本。 因此,您可以想象当我获准撰写有关此新功能的文章时,我的震惊——距离 JMP 16 预定发布整整六个月。
当我参加一次会议时,开发人员向 JMP 员工展示了这一新功能,我分享了我对这一功能的兴奋以及我向客户展示它的渴望。 想象一下,当那天晚些时候,我被要求写一篇关于它的文章时,我感到多么惊讶。 那么,这个让我心潮澎湃的神奇功能到底是什么呢? 是什么让我打破了我的同义词库,争相寻找新的最高级? 什么新功能将彻底改变我向人们介绍 JMP 脚本世界的方式? 嗯……而且,留在我这里……实际上是日志。
未来事物的预览
JMP 16 将引入一种新日志,目前称为增强日志。 但是,这有点像说智能手机是用来打电话的东西(你确实记得他们这样做,对吧?)。 增强日志会跟踪您与 JMP 交互时所做的大部分操作,并且(这是很棒的部分)单击鼠标即可为其生成 JSL ! 让我们先理解这一点。
这远远超出了源脚本和红色三角形保存脚本选项的范围。 他们并不想让海洋沸腾,所以有些东西不会在第一个版本中被捕获;数据导入和数据表操作是 JMP 16 的主要目标。 但它一开始就涵盖了很多领域。 让我向您展示这个东西已经能够做什么(还有六个月的开发时间)。
开启增强日志
首先,打开增强日志就像进入 JMP 中的首选项一样简单(在JMP > 首选项对于 MacOS;文件 > 首选项对于 Windows)并将日志样式下拉列表更改为“增强”。点击好的你就可以去参加比赛了! (请注意,下面的屏幕截图来自早期版本,日志现在在列表底部有自己的菜单项。)
现在打开日志(窗口 > 日志对于 MacOS;查看 > 日志对于 Windows)。 您会看到一些与您习惯的东西看起来有些不同的东西。 我已经在屏幕截图中清除了我的内容,以便您可以看到不同的区域。 顶部是记录操作的地方,我稍后会介绍。 底部是 JMP 生成的 JSL 将出现的位置。

这如何融入我们的故事
我已将所有内容放入 JMP 项目中,只是为了让一切井井有条。 当增强型日志进入项目时,它会自动放置在底部并进入并排配置(左侧是增强型日志;右侧是 JSL 输出)。

由于这并不是要详细讨论我是如何做事的,所以我只是将执行几个步骤并指出一些事情。 但我将使用我们之前使用过的相同示例我的第三篇文章。 如果您一直在关注,请回顾一下并比较一下现在是多么容易。
首先,让我们将一些数据输入 JMP。 我打开了 Big Class Families.jmp。 增强日志区域有一个条目,显示该操作是用户单击(在“类型”下)、它做了什么、该操作在 JMP 中来自何处(在“来源”下)以及发生了什么。 它还有一个很好的时间戳。 现在看看 JSL 区域。 有一个 Open(…) 命令(正确注释!)可供您使用! 无需深入了解脚本索引!

我们继续分析。 我用身高、体重、性别和年龄列做了一个分布。 在增强日志中,现在有一个条目显示用户命令从数据表开始并导致出现分发平台窗口。 在 JSL 区域,我已经获得了正确格式(并注释了!!!)的条目来重现分发平台。

现在,让我们对体重与身高进行 Y 乘 X 拟合。 同样的情况 – 增强日志和 JSL 区域中有一个条目。

但是,这通常不是我们打开“Fit Y by X”的原因,不是吗? 我们想要进行直线拟合或假设检验。 如果我们这样做,则不会更新增强日志或任何新的 JSL 代码。

我们似乎遇到了障碍。 可是等等! 我们没有,是吗? 我们没有遵循JMP 工作流程然而! 所以(按照工作流程)问题是,我们如何获得增强日志来捕获我们通过拟合线来拟合 Y by X 所做的更改? 与往常一样,按下答案按钮即可找到答案! 对于那些想念我的人第一个博客系列,我将红色小三角形称为“应答按钮”。)因为我们处于JSL博客系列,我们要去将脚本保存到...小红色三角形菜单的一部分,我们在其中找到一个新条目,记录。

单击此按钮会将一对新条目放入“增强日志”中,用于“通过 X 拟合 Y”,并启用拟合线选项。
所以。 吓死了。 凉爽的。
旁注:您是否注意到它还处理粘合运算符 (;)?

现在,最后一点。 我们如何从增强日志中获取该 JSL? 好吧,我只是问了一个问题,所以让我们按下增强日志的回答按钮。 并且,我们在那里找到了一个保存脚本 > 到脚本窗口选项。

我们就完成了! 我可以删除额外的 Bivariate 调用(第一个,没有该行)并将两个报告窗口放入 New Window() 函数中,但这里的要点是我完成了 80%,也许 90% 的工作脚本,无需编写任何代码。 它甚至为你评论! (我现在正忙着……等一下……我需要喘口气。)

这是完成的代码,如果您想使用它(注意:我确实更改了文件路径,以便它可以在其他版本的 JMP 上运行):
// Open Data Table: Big Class Families.jmp
Open( "$SAMPLE_DATA/Big Class Families.jmp" );
// Launch platform: Distribution
Distribution(
Continuous Distribution( Column( :height ) ),
Continuous Distribution( Column( :weight ) ),
Nominal Distribution( Column( :sex ) ),
Nominal Distribution( Column( :age ) )
);
// Launch platform: Bivariate
Bivariate( Y( :height ), X( :weight ) );
Bivariate( Y( :height ), X( :weight ), Fit Line( {Line Color( {230, 159, 0} )} ) )
从这里到哪里去……再次
我们又到了博客系列的结尾了……。 我保证这一次是真的。 那么,你对这篇文章的功课是什么? 好吧,您可能会想袖手旁观,等待增强日志的到来。 我知道这很诱人,但我建议您练习一下我们在前几集中介绍过的内容。 这是很重要的东西,你应该运用你所学到的东西。 祝你好运,编码愉快!
感谢迈克,就这个超酷的新功能发表了一篇令人兴奋且有趣的博客文章! 我一直喜欢在 JMP 16 的开发版本中使用它来完成您所做的事情 - 通过工作脚本来复制我的工作,至少完成 90% 的工作 - 无需花费数小时进行编码。 这是一个惊人的节省时间的方法,我知道客户一定会喜欢,无论他们以前编写过 JSL,还是只是想通过将交互操作与日志中生成的工作代码示例进行比较来开始学习。