構文: ID によってインデックス列を作成するにはどうすればよいですかこんにちは、JMP コミュニティです。
ID列によって行にインデックスを付ける列を作成しようとしています。
他のスクリプト言語では、これは次の行で実現されます。
ID 別: gen IDIndex = _n
ID 別: gen IDCount = _N
次のことができますが、テーブル全体にインデックスを付けてカウントします
New Column( "IDIndex", formula( Row() ) );
New Column( "IDCount", formula( N Row() ) );
これに関するアドバイスは素晴らしいでしょう!
誠に心より、
| ID |
IDIndex |
IDカウント |
|---|
| 444 |
1 |
4 |
| 444 |
2 |
4 |
| 444 |
3 |
4 |
| 444 |
4 |
4 |
| 333 |
1 |
3 |
| 333 |
2 |
3 |
| 333 |
3 |
3 |
Re: 構文: ID によってインデックス列を作成するにはどうすればよいですか<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />MS に感謝します。共有したコマンドは並べ替えとは独立して機能します。
すてきな一日を!
Re: 構文: ID によってインデックス列を作成するにはどうすればよいですか以下の式は、ID 列の最初の並べ替えとは関係なく、IDIndex に対して機能すると思います。
Sum( :ID[インデックス( 1, Row() )] == :ID )
Re: 構文: ID によってインデックス列を作成するにはどうすればよいですかJeff は正しいので、IDIndex の式は以前の並べ替えに依存することだけを付け加えておきます。
後でテーブルを再ソートする必要がある場合は、評価を抑制するか削除する必要があります。
column (dt, "IDIndex") << 抑制 eval ( true );
または:
列 (dt, "IDIndex") << 式を削除;
ソートせずに列 IDCount を生成するには、テーブル要約オプションを使用します。
dt << 概要 (グループ ( :ID );
ロン
Re: 構文: ID によってインデックス列を作成するにはどうすればよいですか素晴らしい、完璧に機能しました!
素早い返信ありがとうございます。
すてきな一日を、
マット
Re: 構文: ID によってインデックス列を作成するにはどうすればよいですか数式では、ID 値をチェックして前の行から変更されているかどうかを確認し、変更されている場合はインデックスをリセットする必要があります。
次の式を試してください。
If(:ID != Lag(:ID, 1) | Row() == 1, 1, Lag(:IDIndex, 1) + 1)
ID Count 列では、IDIndex を使用して値を取得しています。
Col Maximum( :IDIndex, :ID )
Col Maximum 関数の 2 番目の引数は By 変数です。
それが役立つことを願っています!
-ジェフ