如何根据列级别查询大型数据表并返回名称包含该级别的列?我们希望构建一个质量监控应用程序,部署到数十个生产设施(最终发布到 JMP Live)。
对于每个设施,我们都有一个非常高且宽的数据表(我们称之为 dtBigBoy,<1000 列,10k-100k 行),该表由无法直接查询的过程数据历史库刷新(我们获取启动/停止时间戳之间的所有数据,并将新数据连接到现有表中)。其中一列“Grade”包含当时生产的产品名称(针对该行)。列命名如下:Grade.Property.#。每个“Grade”至少有 1 个“Grade.Property.#”列。其中一个用户案例是用户对某个特定等级(例如 ABCD001)感兴趣,并希望查看所有属性数据。
- 最有效的方法是什么?在 dtBigBoy 上使用本地数据过滤器,然后使用控制图等等?
或者仅选择:Grade == Chosen.Grade 且列名包含 Chosen.Grade 的行并创建子集?
- 如何创建一个选择对话框,读取“:Grade”列,并将“:Grade”中的级别显示为选项?用户的选择保存到变量 Chosen.Grade 中。
- 如何选择名称包含 Chosen.Grade 的列?
- 执行 1-3 或使用 JMP 表查询从 dtBigBoy 获取我们需要的行和列是否更有效?
来自潮湿闷热的马来西亚吉隆坡的提前感谢!
自动化和脚本数据访问回复:如何根据列级别查询大型数据表并返回名称包含该级别的列?不确定,但我认为本地数据过滤器应该类似于链接子集;过滤后的表依赖于保持打开状态的表。1e3 行 * 1e5 列 * 8 字节/个数小于 1GB,应该可以装入 16GB 以上的内存。链接子集应该不会显著增加所需的内存。
您可以交互式地尝试使用汇总平台,获取成绩列的汇总表。您可以从中获取脚本。
您可以用类似的方式编写子集平台的脚本。您需要编写一个循环来选择子集的列。
我认为,如果不尝试这两种方法,几乎不可能有人知道最后一个问题的答案。我认为两种方法都足够快。
回复:如何根据列级别查询大型数据表并返回名称包含该级别的列?根据你拥有的图表类型,数据量应该不会太大。你是同时绘制所有1000列吗?用户能一次性消化这么多数据吗?我会先从本地数据过滤器开始(如果需要,可以使用条件过滤器),然后根据需要编写脚本(JMP live 很可能无法使用)。如果你不能仅仅依靠列切换器,那么更改列可能是最困难的部分。提供一些简单的示例数据并附带一些额外的解释可能会有所帮助。
当我需要处理超过 400 万行的数据时,我不得不依赖本地数据过滤器的脚本,但这并非因为单行显示速度慢,而是因为本地数据过滤器的更新速度太慢:任何更改都会立即更新,我无法强制只在特定更改时更新。因此,我使用了带有更改功能的本地数据过滤器的汇总表,然后根据更改结果更新了显示的数据。您也可以使用列表框和链接子集来“完全”自定义过滤器。
回复:如何根据列级别查询大型数据表并返回名称包含该级别的列?Craige:谢谢你提供的关于记忆的信息和建议!我们会尝试一下。
回复:如何根据列级别查询大型数据表并返回名称包含该级别的列?贾莫:
感谢您的建议。
不,我们不会同时绘制所有列。我们希望为每个等级|属性制作一个IMR图表。由于每个等级和属性的规格不同,因此必须按等级|属性拆分dt。这会导致许多稀疏列。请参阅下面的代码片段,其中仅包含12个等级的一个属性。控制图生成器不喜欢所有空白行。
Snippet of datatableSnippet of datatable数据表片段
回复:如何根据列级别查询大型数据表并返回名称包含该级别的列?自 2021 年以来情况可能已经发生了变化,但这篇文章讨论了一些关于控制图生成器中缺失值的选项如何绘制忽略缺失数据的控制图? (当然,通过脚本有很多不同的选择)。
编辑: 质量和过程方法 > 控制图生成器 > 控制图生成器中排除和隐藏的样本