在 P&G 的內部 JMP 使用者社群頁面上提出了以下問題。 轉至本論壇:
我有兩個表要根據時間戳連接。 然而,由於資料來源的原因,它們的時間並不相同。 我在 JMP 中找到的唯一選項是完全匹配。 JMP 中是否有選項可以使用最近連接,類似於 pandas join 或 Excel Vlookup 的工作方式?
P&G JMP 用戶社群試圖給出一些答案。 有比我們嘗試推薦的更好的解決方案嗎?
答案#1:
將 Excel 中的兩個表作為單獨的工作表刪除,將 vlookup 列新增至引用工作表 2 的工作表 1,然後移植回 JMP 進行連線? 我還沒有在 JMP 中看到最近的匹配功能,但如果它存在的話我會很感興趣...
答案#2:
「最近連接」的定義不一致。 我對VLOOKUP的記憶(除非它被改變)是從數據表X中取出時間X並將其與數據表Y中最接近的時間Y相匹配,使得X<=Y(或者是Y<=X),有時可以是非常長的間隙,尤其是在資料表 X 或資料表 Y 中以不規則間隔收集資料時。 不規則間隔的可能性確實會使像這樣的連線變得複雜。
遺憾的是,JMP 中沒有快速方法,但您可以嘗試以下幾種方法。
我之前嘗試過的一種方法是將樣條曲線擬合到感興趣的關鍵測量值(X 變數 = 時間),然後保存預測公式並將其傳輸到另一個表。 如果操作正確,這實際上會插入關鍵測量值並將它們匹配。
另一個選擇是進行全連線(時間戳記不符),然後建立一個 Formula 欄位來檢查資料表 X 中的 Time 是否遺失;如果是,則使用資料表 Y 中的時間,否則使用資料表 X 中的時間。然後對這個新的時間列進行排序。 然後為每個感興趣的關鍵測量創建公式。 在這些公式中,檢查是否缺少關鍵測量值。 如果未遺失,則將關鍵測量值帶入,否則,對您命名的此新公式列的任何內容使用滯後函數(公式編輯器中的行函數組),以將觀察值從一行向上拉下來。
答案#3:
在許多情況下,您可以在加入之前以相同的方式對兩個時間戳進行分箱(例如,按秒、10 秒、1 分鐘...分箱資料),從而創建最接近的匹配。 只要時間戳記不是“太大不同”並且您可以接受一些資料聚合,這種方法就非常有效。
分箱是JMP中的列函數
原始提問者的後續行動:
感謝您的建議。 我很可能會在 JMP 之外進行連接,然後在組合後進行分析。
不確定還有多少其他人遇到過此問題,但這可能是建議傳遞給 JMP 將此功能內建到連線對話方塊中,而不是在其外部執行其他步驟。
@彼得_赫什我理解,我同意推薦 JMP 作為理想的資料清理和整理軟體可能是不明智的,至少對於像這樣的情況是如此。 JMP 的強項始終是探索和分析,而不是不尋常的資料整理任務。 目前,基於時間的資料連線問題最好在JMP 之外的編碼語言中處理,在這種情況下,您可以在具有多對一映射或始終關閉的時間指示等情況下有意決定要做什麼。再次感謝。
@mjoner我們暫時不打算將其添加到 JMP 中。令人擔憂的是,就真正的連接而言,從真正的匹配更改為模糊匹配並不是我們所願意的。使用分箱甚至按時間戳對表進行排序以及使用比較資料表應該有助於解決一些挑戰。
@mjoner ,有一個解決方法,可以使用公式標題上的右鍵選項內的快速公式。這將使日期和時間四捨五入到最接近的分秒五秒。我知道這不像模糊匹配那麼方便,但它是另一種選擇。我會確保開發人員知道