たとえば下のようなlongデータでIDごとに番号を振りたい時を考える。「何回目の検査で」最大になったのか、などを知りたい時は、その情報が必要になる。
ID | age | test |
1 | 80 | 4 |
1 | 80 | 3 |
1 | 80 | 5 |
2 | 56 | 8 |
2 | 56 | 8 |
3 | 77 | 9 |
3 | 77 | 2 |
3 | 77 | 1 |
3 | 77 | 0 |
この場合、以下のようにbyを用いると良い。
by ID: gen test_count = _n
ID | age | test | test_count |
1 | 80 | 4 | 1 |
1 | 80 | 3 | 2 |
1 | 80 | 5 | 3 |
2 | 56 | 8 | 1 |
2 | 56 | 8 | 2 |
3 | 77 | 9 | 1 |
3 | 77 | 2 | 2 |
3 | 77 | 1 | 3 |
3 | 77 | 0 | 4 |
例えばID:1では3回目のテストで最大値を取ることがわかる。
コメント