回覆:立即計算自訂列公式或快取行之間的值的選項或函數此選項或函數可以輕鬆建立自訂列轉換來解決以下描述的問題@hogi在後來的回覆之一中數唯一
回覆:立即計算自訂列公式或快取行之間的值的選項或函數對此問題的調查正在進行中,如果我們找到解決方案,我們會向您通報最新情況。
回覆:立即計算自訂列公式或快取行之間的值的選項或函數另一個例子:編寫自訂平滑函數,例如 Savitzky-Golay 過濾器,忽略排除的行。當第一行計算時,這可以一次有效地計算整個列,我想在第一次計算時緩存整個列的值,然後只返回每行中預先計算的結果,而不是重新計算它每次。
回覆:立即計算自訂列公式或快取行之間的值的選項或函數是的,我也注意到了這一點,但確定你是否那樣使用它。 對於我想要的東西來說,它似乎過於認真地對待“恆定”部分。 我們必須進行調查,但它可能需要新的功能來實現依賴性/重新運行意識。
對於像您這樣的情況,我通常使公式依賴表變量,並每次通過循環更新表變量以獲得新的隨機值。
回覆:立即計算自訂列公式或快取行之間的值的選項或函數你好@XanGregg ,
我可能會遺漏一些東西,但當再次運行表公式時,我似乎無法讓 As Constant 重新評估。只要表打開,它似乎(可能是正確的)緩存其值。 這是一個更完整的範例,它使用全域變數解決了這個問題。
看更多... 回覆:立即計算自訂列公式或快取行之間的值的選項或函數你看過 As Constant(x) 函數嗎? 這應該處理請求的唯一一次部分。
Local(
{startofweek = As Constant(
Random Uniform(
Col Min( :Timestamp ),
Col Max( :Timestamp ) - In Days( 7 )
)
)},
If( :timestamp > startofweek & :timestamp < startofweek + In Days( 7 ),
1,
0
)
)回覆:立即計算自訂列公式或快取行之間的值的選項或函數感謝您提供的範例和附加信息@ih 。 將狀態變更為調查。
回覆:立即評估自訂列公式或快取行之間的值的選項或函數 - 狀態變更為:正在調查回覆:立即計算自訂列公式或快取行之間的值的選項或函數這裡有一些潛在的用例,我知道還有其他一些我現在忘記了。對於小型表,或透過使用多個列或表變量,可以輕鬆解決其中的許多問題,但提供列上下文變數將使它們變得更容易。
- 在列公式中使用隨機值,以便可以在模擬中進行交換
// this value should be cached and re-used for all rows,
// but it should change each time the column is recalculated
startofweek = Random Uniform(
Col Min( :Timestamp ),
Col Max( :Timestamp ) - In Days( 7 )
);
If( :Timestamp > startofweek & :Timestamp < startofweek + In Days( 7 ),
1,
0
);
- 自最後一個不合規格樣本開始以來的行數。
- 距離本次活動結束時間
- 該產品代碼的最後 10 個樣本的移動平均值
回覆:立即計算自訂列公式或快取行之間的值的選項或函數我認為這篇文章可能會說明這個問題建立具有 byVar 的統計自訂(公式)函數
回覆:立即計算自訂列公式或快取行之間的值的選項或函數 - 狀態變更為:需要訊息@ih您能否分享一個資料表示例來說明您所描述的問題?
回覆:立即計算自訂列公式或快取行之間的值的選項或函數@hogi - 您斷章取義地理解了我在技術支援案例中的答案。 我指的是自訂變換因為這就是你問的。
我一般沒有說任何關於自訂函數的事情。
在公式編輯器本身內,通常有多種方法將列參考傳遞給自訂函數,例如將其包裝在 Expr() 中。 或者 JMP 識別應該使用列的方法,例如在訊息發送中。
回覆:立即計算自訂列公式或快取行之間的值的選項或函數哎喲 - 答案更令人悲傷:*)

*) TS-00063463
回覆:立即計算自訂列公式或快取行之間的值的選項或函數
@ih寫道:
公式還需要存取整個列,而不僅僅是當前行,因此列引用應該在不計算的情況下傳遞。
@傑夫·珀金森至於TS-00063463,我認為悲傷的答案是:還沒有。
因此,除了速度之外,目前許多任務還無法透過自訂函數來實現。
地位:調查中-> 聽起來很有希望:)
我希望有一種方法可以調整自訂函數以接受列引用作為下一版本中的參數...
https://community.jmp.com/t5/Discussions/Column-reference-in-custom-function/mp/265085/highlight/true#M51645
回覆:用於一次性評估自訂列公式或在行之間快取值的選項或函數具體來說,我需要透過以下方式添加自訂函數的此功能:
新增自訂函數(新自訂函數())
自訂變換只是這個奇妙框架的應用之一。
編輯:
例如
Names Default To Here( 1 );
Add Custom Functions(
New Custom Function(
"COL",
"Median",
Function( {value, byGroup},
Col Median( value, byGroup )
),
<
<FORMULA category=""></FORMULA>
<P><A href="https://community.jmp.com/t5/Discussions/Fast-Way-to-calculate-quot-nested-quot-Col-aggregations-like-MAD/m-p/887467/highlight/true#M104961" target="_blank">https://community.jmp.com/t5/Discussions/Fast-Way-to-calculate-quot-nested-quot-Col-aggregations-like-MAD/mp/887467/highlight/true#M104961</A> </P>
用於立即計算自訂列公式或快取行之間的值的選項或函數一些內建列公式(例如 Col Mean())非常快,因為它們只計算一次昂貴的值,然後為每行返回或修改它們。對於自訂公式,這很難實現,因為每一行都是單獨計算的。有時使用單獨的列來儲存中間值可以加快速度(例如儲存滿足特定條件的行索引,而不是每行重新計算它們),但這會變得混亂且難以遵循。 如果存在列上下文的某種概念,使得一行的計算可以存取前一行中計算的中間值,那麼腳本可以一次計算所有行的結果,然後快速返回它們並將中間結果傳遞給下一行排。 公式還需要存取整個列,而不僅僅是當前行,因此列引用應該在不計算的情況下傳遞。
自動化和腳本編寫回覆:立即計算自訂列公式或快取行之間的值的選項或函數解的一半 - 或說 1/4:

是一個非常有用的功能,我不久前從 提供的解決方案中了解到@tx尼爾森:
https://community.jmp.com/t5/JMP-Wish-List/Option-or-function-to-evaluate-a-custom-column-formula-at-once/idc-p/695311/highlight/true# M5011
如果您知道一次性部分會總是給出相同的結果,你可以考慮使用作為常數自訂函數。
(以下程式碼改編自https://community.jmp.com/t5/Discussions/Differentiate- Between-entire-column-and-current-row/mp/677710/highlight/true#M86405經過@jthi )
有趣的是:它只會被評估一次 - 再也不會(!)
一般來說,這將是「曾經」的一個過於極端的版本:)
任何改變行為的可能性作為常數在自訂公式中?
例如每次運行它行()==1?
Names Default To Here(1);
row_count = 10;
dt = New Table("test",
Add Rows(row_count),
New Column("Die X", set each value(row())),
New Column("Die Y", set each value(Random Integer(1, row_count * 2)))
);
dt << New Column("Formula As Constant", Numeric, Nominal, Formula(
As Constant(print("direct","");x_m = :Die X << get values);
Contains(x_m, :Die Y) > 0;
));
Add Custom Functions(
New Custom Function(
"test",
"myFunc",
Function( {},
As Constant(print("custom","");x_m2 = :Die X << get values);
Contains(x_m2, :Die Y) > 0;
)));
dt << New Column("Formula via Custom Formula", Numeric, Nominal, Formula(test:myFunc()));
回覆:選項或函數用於一次性評估自訂列公式,或在行之間快取值 - 狀態變更為:已確認回覆:用於一次性評估自訂列公式或在行之間快取值的選項或函數使用JMP19,將會有一些改進:
例如,即使沒有中間的虛擬列,也可以更快地計算MAD 欄位()數量級:
計算“嵌套”Col...聚合的快速方法 - 類似 MAD
回覆:用於一次性評估自訂列公式或在行之間快取值的選項或函數這適用於在公式編輯器中手動建立的自訂函數類型 - 並且對於透過Function() 建立的自訂函數有一個技巧。
不包含透過新增自訂函數(新自訂函數())建立的「自訂函數」。