我有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
答案 0 :(得分:-1)
我们可以使用可match
和dplyr
data.table
DT[, names_order := match(name, unique(name))]
或使用dplyr
library(dplyr)
DT %>%
mutate(names_order = match(name, unique(name)))