以下問題是在 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 , 在公式標題的右鍵單擊選項內有一個快速公式的解決方法。這將允許日期和時間四捨五入到最接近的分秒五秒。我知道這不像模糊匹配那樣方便,但它是另一種選擇。我會確保開發人員知道