为手动排序的data.tables添加排序顺序索引

时间:2017-01-18 11:18:47

标签: r data.table dplyr

我有data.table或data.frame

library(data.table)
DT <- data.table(id = 1:9, name= rep(c('b','a','c'), each = 3))

其中列name是手动排序的,但始终是分组的。如何计算name_order列以在Data.table或dplyr中实现以下结果?

   id  name  name_order
1:  1     b     1
2:  2     b     1
3:  3     b     1
4:  4     a     2
5:  5     a     2
6:  6     a     2
7:  7     c     3
8:  8     c     3
9:  9     c     3 

1 个答案:

答案 0 :(得分:-1)

我们可以使用可matchdplyr

中应用的data.table
DT[, names_order := match(name, unique(name))]

或使用dplyr

library(dplyr)
DT %>%
   mutate(names_order = match(name, unique(name)))