语法:如何通过 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 变量。
我希望这有帮助!
-杰夫