R:通过数据表中的有序列创建id无法正常工作

时间:2018-02-13 16:11:24

标签: r datatable

我正在尝试根据数据表中的排序列创建唯一的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

1 个答案:

答案 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