對浮點 EFT 值使用 Update() 函數時出現問題I am merging sample-level metadata with time-series raw measurements using Python’s merge_asof and then updating the time-series table in JMP using Update(). Both tables contain columns for time (EFT) and batch ID.
問題:
Python 合併操作能正確處理「最近鄰」類型:
<CODE class="whitespace-pre! language-python">
merged_batch = pd.merge_asof(
metadata_batch.sort_values('EFT_val'),
timeseries_batch.sort_values('EFT_val'),
left_on='EFT_val',
right_on='EFT_val',
direction='nearest'
)
JMP Update() 對接近的值失敗:
<CODE class="whitespace-pre! language-jsl">
timeSeriesTable << Update(
With( merged_batch ),
Match Columns(
:EFT_val = :EFT_val,
:Batch_ID = :Batch_ID
)
);
-
元資料表的行數比時間序列表少。
-
即使在使用者介面上看起來完全相同的值,也會因為浮點精度差異而導致計算失敗。
當我在“merged_batch”單一表中繪製圖表時,一切正常,但在“timeSeriesTable”更新後,圖表無法繪製所有資料點,並且還會遺漏一些行。
像這樣:
0 - 至今
87.9669444444445 - 目前
111.966666666667 - 缺失
135.966111111111 - 缺失
183.965555555556 - 至今
205.965277777778 - 至今
自動化和腳本編寫基礎資料分析與建模資料融合與清理數據探索與視覺化回覆:關於浮點 EFT 值 Update() 函數的問題能否提供一些範例表?您是否嘗試在 JMP 中將表 208.0955556 與表 209 連接?
JMP本身沒有「連接最近鄰」功能(雖然可以透過腳本實現,社區/外掛程式庫裡也有相關的腳本)。此外,至少有一個使用者在願望清單中提出了這項功能的需求。
回覆:關於浮點 EFT 值 Update() 函數的問題是的,由於 JMP 沒有這個功能,所以我使用了 Python,它運行良好,並且與程式碼整合得非常好。我附上了表格供您參考。
不,我不是想把208.0955556 和 209 連接起來。 209 是記錄值,而浮點數是機器輸出的,所以我才在 Python 中使用 mergeasof 函數來找出最接近的值。
回覆:關於浮點 EFT 值 Update() 函數的問題是存在什麼問題,還是只是提醒大家 JMP 目前不具備此功能?
回覆:關於浮點 EFT 值 Update() 函數的問題問題在於——當我在「merged_batch」單一表中繪製圖表時,一切正常,但在「timeSeriesTable」更新後,圖表無法繪製所有資料點,而且還會遺漏一些行。
回覆:關於浮點 EFT 值 Update() 函數的問題“111.966666666667 - 缺失”

我們是否擁有創建圖表所需的所有表格?我們是否應該假設元資料與 merged_batch 相同?

對我來說,連接操作是可行的,但我真的不信任它,因為使用浮點數進行精確連接可能會得到你意想不到的結果,因為它們往往不夠精確(浮點數學)。
您可以嘗試增加數字的小數位數,以便更準確地查看 JMP 認為它們是多少。

回覆:關於浮點 EFT 值 Update() 函數的問題Join 對我來說也有效,雖然這兩列的時間戳相似,因為我是從原始資料本身進行篩選的,但我對 JMP 的更新行為不太滿意。
我不使用 Join 的原因是,它最終會創建多個列名,例如“表名”的“列名”和“n”,其中“n”是多次運行的後續表編號,我遇到了這個障礙,所以改用了 Update Table。
所以更好的方法是用固定的小數嗎?例如 1e-8 或 1e-12?
dt = Current Data Table();
col = Column( dt, "EFT" );
// Replace each value with a rounded version (e.g., 8 decimals)
col << Set Each Value( Round( :EFT, 1e-14 ) );
回覆:關於浮點 EFT 值 Update() 函數的問題我使用 Join 來演示,因為使用提供的資料進行 Update 操作沒有任何作用,但 Join 可以合併同名列(並使用第二個表中的資料更新主表)。
我認為四捨五入或許是一個辦法。或者,您可以像之前那樣使用 pandas 來建立最終表格嗎?另外,提醒一下,您可能不想那樣使用 `<< Set Each Value`,因為我不確定 JMP 是否已經將其更改為預期行為。
回覆:關於浮點 EFT 值 Update() 函數的問題此功能已擱置一段時間——請支持@jthi的願望並投票:
新增模糊連接/asof合併/按不完全匹配的列連接
回覆:關於浮點 EFT 值 Update() 函數的問題外掛程式: 連接最近行 - 使用連續列和最近值連接表/ @jthi