為什麼會出現這種沒有公式的欄位的意外重新計算?我經常使用 JMP 來建立資料管道原型,計算一個表中的列值,然後根據計算結果將資料查詢到另一個表中。我注意到一個行為在我看來非常奇怪且違反直覺。假設我有一張包含三列的表:

第二列和第三列計算為滯後(:列 1)和列總和(:列 1)。
現在我將行查詢到一個新表中,其中:列 1 > 2。結果是:

由於表格繼承了公式,因此「:列 1 的滯後」和「:列 1 的總和」會被重新計算。這是可以理解的。
但是,如果我刪除公式並更新表格會怎麼樣?由於我沒有公式,也沒有重新計算目標表中的值,所以我會看到來源表中的數據,對嗎?猜猜怎麼著,錯了!什麼都沒有改變。我仍然看到 null、3 和 7, 7,而不是 2、3 和 10, 10。
這是缺陷嗎?還是這是預料之中的?該如何解釋?
謝謝!
自動化和腳本回覆:為什麼會出現這種沒有公式的欄位的意外重新計算?哎喲,令人驚訝的有毒混合物:查詢生成器和列公式!
有些設定類似於 Subset 中的設置

可以消除很多頭痛。
除此之外:一個漂亮的放大鏡,可以觀察 JMP 的細節 : )
JMP 是哪個版本?能分享一下日誌裡的步驟嗎?
我使用 JMP 18.2.2 和 19.0 對其進行了測試,其中落後()在執行查詢後執行,而 Col Sum()則不執行。
刪除公式後,一切正常。
[也許:您是否引用了帶有公式的舊數據表“無標題”? ]


names default to here(1);
dt = New Table( "Untitled",
Add Rows( 4 ),
New Column( "Column 1",
Format( "Best", 12 ),
Set Values( [1, 2, 3, 4] )
),
New Column( "Sum[Column 1]",
Formula( Col Sum( :Column 1 ) )
),
New Column( "Lag[Column 1]",
Formula( Lag( :Column 1, 1) )
)
);
dt << run formulas();
wait(0);
queryDT= Expr(New SQL Query(
Connection( "JMP" ),
Select(
Column( "Column 1", "t1" ),
Column( "Sum[Column 1]", "t1" ),
Column( "Lag[Column 1]", "t1" )
),
From( Table( "Untitled", Alias( "t1" ) ) ),
Where(
GT(
Column( "Column 1", "t1" ),
2,
UI( Comparison( Base( "Continuous" ) ) )
)
)
) << Run Foreground);
queryDT;
Column (dt, 2) << delete formula();
Column (dt, 3) << delete formula();
wait(0);
queryDT;
wait(0);
dt << set name("input");
回覆:為什麼會出現這種沒有公式的欄位的意外重新計算?您是否正在查詢 JMP 資料表?您是否正在從哪個表中刪除公式?您能分享一些範例資料集來復現這個問題嗎?
回覆:為什麼會出現這種沒有公式的欄位的意外重新計算?是的,第二張截圖中的第二個表是查詢第一張截圖中第一個 JMP 資料表的結果。表格已附加 - 將它們放在同一資料夾中,然後在第二個表中執行「從資料庫更新」腳本。第二個表中沒有公式;然而,結果就像公式存在並被求值一樣。
回覆:為什麼會出現這種沒有公式的欄位的意外重新計算?JMP Pro V.17
附有表格。
回覆:為什麼會出現這種沒有公式的欄位的意外重新計算?這不是一個好的解決方法,但是您可以暫時從原始表中抑制公式評估,運行查詢並重新啟用公式評估(我認為這應該已經由查詢生成器完成)。

此外,我會就此聯繫 JMP 支持,因為發生了一些奇怪的事情, JMP 支持
回覆:為什麼會出現這種沒有公式的欄位的意外重新計算?對 JMP 19.1 的建議:
查詢產生器:停用公式列
回覆:為什麼會出現這種沒有公式的欄位的意外重新計算?啊,我誤會了
但是如果我刪除公式並更新表格會怎麼樣?
好的,在 JMP19 中仍然一樣。
那麼,JMP 執行查詢(包括公式) - 並用新結果取代目標表中的資料?
這實際上正是我預期的“更新”操作。但是,如果在此期間新增了新列,JMP 為什麼不能執行這種「保留表格,僅更新資料」的更新呢?對於第四欄 ,它看起來更像是刪除了那裡的所有內容,並用新的查詢結果取代它。
也許:它採用查詢結果 - 但複製並應用舊的列設定?
....從而刪除列公式 - 並隱藏問題?
回覆:為什麼會出現這種沒有公式的欄位的意外重新計算?是的,這個解決方法有效。我使用的另一個笨拙的解決方法是,先將所有行查詢到一個不使用公式的中間表中,然後再查詢這個中間表。
回覆:為什麼會出現這種沒有公式的欄位的意外重新計算?JMP 支援部門的回應是什麼?
回覆:為什麼會出現這種沒有公式的欄位的意外重新計算?我沒有聯絡他們。我寧願依靠這個社區和我自己。:)
回覆:為什麼會出現這種沒有公式的欄位的意外重新計算?嗯,我更喜歡官方修復而不是“變通方法”。
修復它——然後忘記它。
找到解決方法並且不要忘記! !
- 別忘了告訴每位同事!
回覆:為什麼會出現這種沒有公式的欄位的意外重新計算?關於“社區和我自己” - 我添加了主題
注意:Jmp 執行意外操作的地方
另一方面,我非常有信心這個問題可以在 GUI 中解決。
與 Subset 中的選項類似的選項可以幫助客戶了解問題,預設選項應該是刪除或停用公式列。

讓我們看看這種行為是否被視為錯誤:TS-00244891。
如果沒有,則需要更長時間,因為我們首先需要在願望清單上收集足夠的 Kudos: 查詢產生器:禁用公式列