自訂函數 - 如何引用列很酷的是,可以在公式編輯器中使用自訂函數以及自訂公式的一部分。
使用變換類別命令,
New Custom Function( "myNamespace", "Add Ten", Function( {x, y = 10}, x + y ), << Transform Category( "Custom" ));從https://www.jmp.com/support/help/en/16.2/#page/jmp/create-custom-functions-transforms-and-formats.shtml
將顯示在右鍵單擊“新公式列”選單中 - 並產生一個包含公式的列

我剛開始@tx尼爾森的方法
https://community.jmp.com/t5/Discussions/Formula-for-Number-of-Unique-Categories-in-Column/mp/55284/highlight/true#M31262
產生一列數唯一值 - 但我不想輸入公式,而是想使用自訂函數。
手動產生的公式列有效,但使用自訂函數的列數唯一沒有。
它失敗並顯示錯誤訊息

似乎 x 在經過()表達式不替換為列名。
所以,使用評估(替換()解決問題?
……但是怎麼辦呢?
和
Eval(Substitute(Expr(Summarize( values = by( _col_ ) )),Expr(_col_),Name Expr(x) ));
我明白了

- 因為在列公式中 :x 被視為 :x[row()]。 啊啊…
沿著這條線,我開始想知道為什麼會這樣:

[注意:紅色鋸齒線只是告訴用戶列印在列公式中不是一個好主意]
為什麼 Jmp 知道它必須發送獲取值到專欄:性別並且不:性別[行()]。
為什麼它實際上會返回:性別[行()]在第二行 - 而不是列:性別?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Add Custom Functions(
New Custom Function(
"custom",
"count unique",
Function( {x},
As Constant( Summarize( values = by( x ) ) );
N Items( values );
),
<<TRANSFORM category=""></TRANSFORM>
自動化和腳本編寫回覆:自訂函數 - 如何引用列你好@hogi ,
我不確定這是否是一個聰明的方法,但以下腳本有效。 我使用了 eval 插入函數。 我希望它有幫助。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Add Custom Functions(
New Custom Function(
"custom",
"count unique",
Function( {x},
Eval( Parse( Eval Insert( "As Constant( Summarize( values = by( :^x^ ) ) )" ) ) );
N Items( values );
),
<<TRANSFORM category=""></TRANSFORM>回覆:自訂函數 - 如何引用列嗯,不幸的是,它不起作用:

產生錯誤訊息:

所以,就像一樣
Substitute (..., Expr(_col_),Name Expr(x))
我想這是因為要使其工作的函數呼叫必須是
custom:count unique( "sex" )
相反,如果
custom:count unique( :sex )
回覆:自訂函數 - 如何引用列我剛剛找到了同一問題的早期(2018)版本:
自訂函數中的列引用
回覆:自訂函數 - 如何引用列Jmp 支援 TS-00063463 非常明確的答复
