語法:如何通過 ID 創建索引列JMP 社區您好,
我正在嘗試創建一個按 ID 列對行進行索引的列。
在其他腳本語言中,這是通過以下幾行完成的。
按 ID:gen IDIndex = _n
按 ID:gen IDCount = _N
我可以執行以下操作,但我對整個表進行索引和計數
New Column( "IDIndex", formula( Row() ) );
New Column( "IDCount", formula( N Row() ) );
對此的建議會很棒!
非常誠摯的,
| ID |
ID索引 |
ID計數 |
|---|
| 第444章 |
1 |
4 |
| 第444章 |
2 |
4 |
| 第444章 |
3 |
4 |
| 第444章 |
4 |
4 |
| 第333章 |
1 |
3 |
| 第333章 |
2 |
3 |
| 第333章 |
3 |
3 |
回复:語法:如何通過 ID 創建索引列<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />謝謝MS,您共享的命令確實獨立於排序工作。
祝你有美好的一天!
回复:語法:如何通過 ID 創建索引列我認為下面的公式適用於 IDIndex,與 ID 列的初始排序無關:
Sum( :ID[索引( 1, Row() )] == :ID )
回复:語法:如何通過 ID 創建索引列Jeff 是正確的,我只會補充一下 IDIndex 的公式取決於之前的排序。
如果稍後需要對錶重新排序,則需要抑制評估或將其刪除。
列 (dt, "IDIndex") << 抑制 eval ( true );
或者:
column(dt, "IDIndex") << 刪除公式;
要生成不排序的 IDCount 列,您可以使用 table sumary 選項:
dt << 摘要(組(:ID);
羅恩
回复:語法:如何通過 ID 創建索引列太棒了,效果非常好!
感謝您的快速回复。
祝你有美好的一天,
馬特
回复:語法:如何通過 ID 創建索引列在公式中,您需要檢查 ID 值以查看它是否較上一行發生更改,如果發生更改,請重置索引。
試試這個公式:
If(:ID != Lag(:ID, 1) | Row() == 1, 1, Lag(:IDIndex, 1) + 1)
您的 ID Count 列已使用 IDIndex 來獲取其值:
列最大值( :IDIndex, :ID )
Col Maximum 函數的第二個參數是 By 變量。
我希望這有幫助!
-傑夫