以下问题是在 P&G 的内部 JMP 用户社区页面上提出的。 传递到这个论坛:
我有两个要根据时间戳加入的表。 但是,由于数据源的原因,它们的时间不同。 我能在 JMP 中找到的唯一选项是完全匹配。 JMP 中是否有使用最近连接的选项,类似于 pandas join 或 Excel Vlookup 的工作方式?
P&G JMP 用户社区试图给出一些答案。 有比我们尝试推荐的更好的解决方案吗?
答案#1:
将 Excel 中的两个表作为单独的工作表删除,将 vlookup 列添加到 sheet1 引用 sheet2,然后移植回 JMP 以进行连接? 我没有在 JMP 中看到最接近的匹配功能,但如果它存在我会很感兴趣......
答案#2:
“最近连接”的定义不一致。 我对 VLOOKUP 的记忆(除非它已更改)是从数据表 X 中获取时间 X,并将其与数据表 Y 中的最近时间 Y 匹配,使得 X<=Y(或者它是 Y<=X),有时可能是很长的间隔,尤其是在数据表 X 或数据表 Y 中以不规则的时间间隔收集数据时。 不规则间隔的可能性确实会使这样的连接复杂化。
不幸的是,JMP 中没有快速的方法,但您可以尝试一些方法。
我之前尝试过的一种方法是将样条曲线拟合到感兴趣的关键测量值(X 变量 = 时间),然后保存预测公式并将其传输到另一个表。 如果做得正确,这基本上会插入关键测量值并将它们匹配起来。
另一种选择是进行全连接(时间戳不匹配),然后创建一个公式列来检查数据表 X 中的时间是否丢失;如果是,则使用数据表 Y 中的时间,否则使用数据表 X 中的时间。然后对这个新的时间列进行排序。 然后为每个感兴趣的关键测量创建公式。 在这些公式中,检查是否缺少关键测量。 如果它没有丢失,则将关键测量值带过来,否则,使用 Lag 函数(公式编辑器中的行函数组)针对您命名这个新公式列的任何内容,以降低一行以上的观察结果。
答案#3:
在许多情况下,您可以在加入前以相同的方式对两个时间戳进行分箱(例如,按秒、10 秒、1 分钟...分箱数据)来创建最接近的匹配。 只要时间戳不是“太不同”并且您可以接受一些数据聚合,这非常有效。
Binning 是 JMP 中的列函数
原提问者的跟进:
感谢您的建议。 我很可能会在 JMP 之外进行加入,然后在合并后进行分析。
不确定有多少其他人遇到此问题,但这可能是一个建议传递给 JMP,以便将此功能内置到连接对话框中,而不是在它之外执行其他步骤。
@mjoner , 在公式标题的右键单击选项内有一个快速公式的解决方法。这将允许日期和时间四舍五入到最接近的分秒五秒。我知道这不像模糊匹配那样方便,但它是另一种选择。我会确保开发人员知道