我正在尝试根据数据表中的排序列创建唯一的ID列。我在这里复制了一个简单的例子,但我没有按照正确的顺序获得ID。
t <- data.table(YEAR = c(2007, 2009, 2011, 2001, 1994, 2005))
t[, id := order(YEAR)]
它返回以下内容:
YEAR id
1: 2007 5
2: 2009 4
3: 2011 6
4: 2001 1
5: 1994 2
6: 2005 3
但我在期待:
YEAR id
1: 2007 4
2: 2009 5
3: 2011 6
4: 2001 2
5: 1994 1
6: 2005 3
答案 0 :(得分:1)
rank
t[, id := rank(YEAR)]
# YEAR id
# 1: 2007 4
# 2: 2009 5
# 3: 2011 6
# 4: 2001 2
# 5: 1994 1
# 6: 2005 3