JMP-Tools 插件概述 - 由 jthi 编写的 JMP 插件我现在已经发布了一些为 JMP 编写的插件。 代码和插件(有些是加密的)可以从此 GitHub 页面找到jthi-jmp-工具 (github.com)和概述可以从jthi-jmp-tools / JMP 工具 (github.com)存储库。 如果您对这些加载项有建议,您可以:
- 对此帖子发表评论
- 在正确的 GitHub 存储库中打开与该加载项或通用加载项相关的问题
- 如果我在此处发布了插件,请在 JMP 社区插件页面发表评论
- 在 JMP 社区中发送私人消息
开发这些工具的目的是提供新工具,增强 JMP 已有的工具,并主要提高我的脚本编写技能,同时编写一些有趣的代码。 所有插件都可以从以下位置找到jthi-jmp-tools/JMP-Tools/releases (github.com)您应该可以从那里下载并安装它们。 有些还可以从 JMP 社区找到。 这些插件确实包含一些独立的功能,您可以通过包含正确的脚本/将它们复制到您的代码中来在您自己的脚本中使用,所以如果您对此感兴趣,我建议您查看源代码。
加载项的结构采用了我很久以前就如何构建它们的一些基本想法,因此它们大多具有相同的目录结构和一些通用文件。 例如,一些可以保存的设置已保存到settings.json 文件中。 加载项通过使用组合在一起插件管理器因为它使管理多个插件比 JMP 提供的本机工具容易得多。
大多数插件将添加到 JMP 工具下的插件菜单中:

还有一个工具栏插件。 这可以从“main-repositorys”发布页面找到。 如果您已经安装了此处描述的(所有/大多数)插件,则非常有用。

以下是我创建的插件的快速概述,请注意,有一些工作正在进行中。 可以从社区找到的脚本的标题中应该有这个“书”链接
。
想法是为用户提供快速汇总统计数据以及他们可以在列上执行的快速操作。 当您获得新数据集时,这可以用作您运行的第一个工具,以概述您正在使用的数据(部分灵感来自pandas-profiling (github.com) )。

您有时会遇到编码错误且数据类型错误的数据。 在 JMP 中,当您将数据类型从字符更改为数字时,由于转换的工作方式,您可能很容易丢失一些数据。 该工具的目的是将选定的字符列(可以安全转换)转换为数字列。该工具获取列中的值,然后检查它们是否可以转换为数字。 如果所有这些(或足够多的)都可以转换,它将把数据类型更改为数字。 它允许您选择要转换的列,允许使用转换阈值和采样率。

该工具将使用当前行号在数据表中创建排序列。 当您开始分析并想要对数据进行排序但仍然可以回滚到原始顺序时,这非常有用。 该列将在数据表的开头创建,如果创建多个排序列,则会添加索引。

我还创建了愿望清单项目,希望可以直接从 JMP 找到一些类似的东西(对于列,该项目已经存在,但对于行则不存在)在打开/创建时将原始订单属性/列添加到 JMP 数据表
该工具允许用户轻松删除缺失值超过指定数量(阈值)的多列。

该工具允许用户根据上一个/下一个/最近的找到值填充缺失值。已经有一些工具可以以某种方式执行此操作(甚至 JMP 也有填充行),但我使用/见过的工具在至少您要执行此外接程序的分组选项,而且如果您使用订单列,则这不应该要求您对数据表进行排序。

该工具的目的是为用户界面提供从所选数据表中以不同格式列出的所选列(名义、序数)中列出的唯一值。 从此列表中,用户可以直接将值复制粘贴到剪贴板或使用特定按钮进行复制。
工具还提供了一个选项,可以将值直接粘贴到框中并获取不同格式的值。 例如,当您从 Excel 复制粘贴值时,这很方便。 您还可以将剪贴板中的值直接格式化为 SQL 列表。

此插件的目的是为用户提供一种方法,以与 SQL 的 listagg 类似的方式创建具有分组值列的新表。 在最好的情况下,此选项将位于 JMP 的摘要和拆分平台中,因为即使我使用摘要进行拆分或聚合,我有时也想保留一些值。

我已经为这两个项目创建了愿望清单允许拆分创建多重响应列和将 Listagg/Concatenate/GROUP_CONCAT 添加到摘要平台桌子。
使用连续列连接两个数据表。 可以向后、向前、最近/最近连接。 支持使用容差/最大距离进行连接和分组列的使用。 数据不必进行排序,但它确实可以加快工具的执行速度。 灵感部分来自Python Pandas - 合并 Asof

我创建了愿望清单项目,部分链接到此添加模糊连接/asof合并/按不完全匹配的列连接
从 JMP 的“列/重新排序列”菜单中找到的大多数列排序选项不提供仅对选定列进行排序的可能性。 该插件为 JMP 用户提供了这些选项。

有一个与此相关的愿望清单项目(这就是我编写此插件的原因)列重新排序 > 按名称/数据类型/角色排序 > 仅所选列
10. 将 X 替换为 Y (将 x 替换为 y (github.com) )
将完全匹配替换为所选列中的其他值。

该工具的目的是让 JMP 用户拆分长(堆叠)数据,并在数据格式正确的情况下直接从原始数据设置规格限。

提供对用户定义脚本的快速访问的工具(为 jthi-jmp-tools 预先配置)。 还提供启动脚本、修改其 settings.json 文件和打开目录的访问权限。 还允许更改当前数据表。
Strongy 建议添加为易于访问的快捷方式,例如我的是 Ctrl+Shift+Z。 如果脚本已经打开,再次启动它会将其置于前面。

这仍在进行中,但其想法是提供用户指定目录的文件列表并允许打开文件/目录。

现在就这样,我将尝试在某个时候完成尚未完成的加载项并修复我遇到的错误。 大多数最新版本的插件可以在 GitHub 上找到。
数据混合和清理视窗回复:JMP-Tools 插件概述 - jthi 编写的 JMP 插件第五名!!!!!!回复:JMP-Tools 插件概述 - jthi 编写的 JMP 插件请随意从“填充缺失的单元格”下载并安装该加载项并试用。
一些类似的事情可以直接在 JMP 中使用 Fill 完成:

并使用数据表工具插件。我编写的插件确实有一些额外的好处,例如对列进行分组,并且如果您有一些要排序的列,则不需要对数据表进行排序(如果没有提供排序列,它将使用行顺序)。
回复:JMP-Tools 插件概述 - jthi 编写的 JMP 插件感谢JTHI提供了这么多高效的工具。
有没有可能制作一个可以快速将Excel的VBA转为JSL的插件?
谢谢!
回复:JMP-Tools 插件概述 - JMP 插件由 jthi 编写VBA 可以做很多事情,并且可以用很多不同的方式编写它,因此我认为使用“简单”插件将 VBA 直接转换为 JSL 是不可行的。对于一些简单的情况可以进行转换,但否则必须根据具体情况进行转换。您还可以使用 JMP 使用 Run Program() 来运行 Excel 宏。
回复:JMP-Tools 插件概述 - JMP 插件由 jthi 编写使用 EmEditor 的替换功能快速将浏览器副本转换为 JSL 代码
CURL(CMD)从浏览器F12复制,用EmEditor的替换功能快速转换成JSL代码。
当然这个过程也要用JSL来实现。

cURL(命令)
curl "http://excalc" -H "Connection: keep-alive" -H "Origin: http://excalc.icfqs.com:7616" -H "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" -H "Content-Type: text/plain" -H "Accept: */*" -H "Referer: http://excalc.icfqs.com:7616/site/tdx-zbfx/page-ddlj.html?setcode=1^&code=xxxxxx^&name=ssssss^&color=0" -H "Accept-Encoding: gzip, deflate" -H "Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,zh-TW;q=0.7" -H "Cookie: ASPSessionID=" --data-binary "^[^{^\^"funcId^\^":2,^\^"offset^\^":0,^\^"count^\^":200,^\^"cond^\^":^\^"time,11700,33600^|amount,14^\^",^\^"modname^\^":^\^"TickAly^\^"^}^]" --compressed --insecure
编辑器
document.selection.Replace("\\r","\\n",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
document.selection.Replace("\\n\\n","\\n",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
document.selection.Replace(" -H ","\\n",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
document.selection.Replace("curl \"(.{0,})$","u=\"\\1;h=[=>];//h[\"Content-Type\"]=\"application/json\";",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
document.selection.Replace(" --compressed","\\n--compressed",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
document.selection.Replace(" --data(.[^\"]{0,})(.{0,})$","\\njj=\\2;",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
//document.selection.Replace("\"cookie: (.{0,})$","h[\"cookie\"]=\"\\1;",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
document.selection.Replace("\"cookie: (.{0,})$","h[\"cookie\"]=\"\\1;\\nzzzrs=New HTTP Request(URL(u),Method(\"GET\"),Headers(h));//rs=New HTTP Request(URL(u),Method(\"POST\"),JSON(jj),Headers(h));\\nr=rs<<SEND></SEND>JSL(<SPAN>未完成</SPAN>)
<CODE class=" language-jsl">u="http://excalc";h=[=>];//h["Content-Type"]="application/json";
//h["User-Agent"]="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36";
//h["ac"]="*/*";
h["cookie"]="ASPSessionID=";
rs=New HTTP Request(URL(u),Method("GET"),Headers(h));//rs=New HTTP Request(URL(u),Method("POST"),JSON(jj),Headers(h));
r=rs<<SEND></SEND><CODE class=" language-jsl">