我有这个简单的任务,想象我有这张表:
var1
1: X
2: X
3: Y
4: X
5: Z
6: Y
我想创建一个像这样的新变量:
var1 nth
1: X 1
2: X 2
3: Y 1
4: X 3
5: Z 1
6: Y 2
实际上我有很多变数很多。 所以我的实际解决方案是(效果很好):
dt[, flag := 1]
dt[, nth := frank(flag, ties.method = "random"), by = .(var1)]
但这很慢,我对排名并不感兴趣。(坦率的排序和排名,我只需要一个简单的索引)。
我想象这个解决方案,但不起作用:
dt[, pos := .I, by = .(var1)]
您是否有任何快速而直接的解决方案来完成此任务?
谢谢
答案 0 :(得分:0)
md-tabs