按其自然顺序创建ID列

时间:2014-08-05 23:44:04

标签: r

我有这样的数据集

df=data.frame(subject= c(rep(1001, 3), rep(732, 2),rep(966,4)))

我希望创建一个ID列,以便输出看起来像这样

  subject id
1    1001  1
2    1001  1
3    1001  1
4     732  2
5     732  2
6     966  3
7     966  3
8     966  3
9     966  3

我使用了代码df$id <- as.numeric(as.factor(df$subject)),但它给了我一个按照主题编号排序的id列

  subject id
1    1001  3
2    1001  3
3    1001  3
4     732  1
5     732  1
6     966  2
7     966  2
8     966  2
9     966  2

有没有人知道如何使用自然顺序制作id列?

1 个答案:

答案 0 :(得分:2)

简单地处理rawr's comment以解决问题(如果rawr发布回答,我很乐意删除此答案)

df=data.frame(subject= c(rep(1001, 3), rep(732, 2),rep(966,4)))
df
  subject id
1    1001  1
2    1001  1
3    1001  1
4     732  2
5     732  2
6     966  3
7     966  3
8     966  3
9     966  3