新專欄:排名獨特你好,
我想創建一個值為 1,2,3 - N 的列來標記另一列中的唯一值。
社區裡有好幾個類似的帖子
如何根據A列的唯一分組創建一個帶有數字的新列
排名唯一
具有多種解決方案。
但到目前為止我還沒有找到一個很酷的解決方案。
它應該是
- 動態(對錶中的更改做出反應)-> 無表/摘要,無代碼標籤
- 與列類型無關(至少:字符 + 數字)-> 沒有代碼標籤
- 即使對於未排序的表也能正常工作 -> 無延遲
- 快速 -> 無關聯數組
最好:像 (*) 這樣的短函數
rank unique(:col1)
或函數的選項 (**)
rank(:col1, << unique(1))
我找到了這個選項
rank(:col1, << tie(mode))
但我沒有找到模式產生數字 1, 2,3 ... 氮
我認為人們可以通過使用到達那裡秩兩次:
New Column( "step1",Formula( Col Rank( :sex, <<TIE></TIE>
但是step2知道有關step1列的一些秘密,用戶看不到這些秘密:

什麼有效:
New Column( "Rank[sex]",
Formula(
If(row() == 1,summarize(values= by(:sex)));
Contains( values, :sex )
)
);
我仍在搜索 (*) 或 (**),並希望可以在“新公式”列右鍵單擊上下文菜單中找到它。 但是哪裡?
數據混合和清理回复:新專欄:排名唯一沒有單個 Col 函數可以執行此任務。 您可以使用 Col 函數來完成此操作,但它很可能需要很少的函數,並且比使用 Summarize(或關聯數組)慢。為 Ranking Tie 和 Col Rank 函數添加密集排名
回复:新專欄:排名唯一遺憾的是願望清單條目 - 有這麼多好的條目 - 但他們卻沒有被注意到。
我怎麼會錯過這個...
-> 我這邊的工藤。
回复:新專欄:排名唯一搜索並不是 JMP 社區中最好的,所以我應該在標題中添加更多“關鍵字”,例如唯一排名。 這是我在工作中時不時遇到的問題,但幸運的是(至少現在還沒有......)要么計算速度不是問題,要么我不需要動態公式。
回复:新專欄:排名唯一搜索:感謝您關於使用社區的帖子。
從那時起,我聽從了你的建議並始終使用谷歌搜索 - 我什至在瀏覽器中添加了快捷方式。
過去,一個好的做法是向社區發送帖子,然後打開它並查看右側“相關帖子”的建議 - 但自從社區佈局更新後我再也找不到這個功能了。
Rank unique 的一個很好的應用程序:
在圖形生成器中,當我將晶圓放入X 組放置區域並將變體放入Y 組放置區域時,如果沒有DOE 並且每個晶圓只有一個變體,我會得到一個非常稀疏的圖,其中有很多白色區域。
然後,只需通過懸停標籤即可獲得 X 組放置區的排名 1、2、3...以及晶圓信息,這很酷。
擁有動態版本並不是真正必要的 - 但如果值在某些表更新後自動調整,我會有更好的感覺 - 這樣可以保證不存在舊值。
對於相當長度的數據,關聯數組已經變得非常慢。如果不保存你的數據真的很危險......
回覆:新專欄:排名唯一嗯,Jmp 18 還是一樣:

遵循@jthi來自Add Counter for Unique Cases in Groups的想法:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Column( "rank_unique (sex) by age",
Formula(
Col Minimum(
Col Rank( If( Row() == Col Min( Row(), :age, :sex ), 1 ), :age ),
:age,
:sex
)
)
)
- 只是每個性別 X 年齡的第一個值
- 產生排名
- 使用 ColMinimum 將值廣播到其他行