在 data.table 上创建键后:
set.seed(12345)
DT <- data.table(x = sample(LETTERS[1:3], 10, replace = TRUE),
y = sample(LETTERS[1:3], 10, replace = TRUE))
setkey(DT, x, y)
DT
# x y
# [1,] A B
# [2,] A B
# [3,] B B
# [4,] B B
# [5,] C A
# [6,] C A
# [7,] C A
# [8,] C A
# [9,] C C
# [10,] C C
我想获得一个整数向量,为每一行提供相应的“键索引”。我希望i
下面的预期输出(列)将有助于澄清我的意思:
# x y i
# [1,] A B 1
# [2,] A B 1
# [3,] B B 2
# [4,] B B 2
# [5,] C A 3
# [6,] C A 3
# [7,] C A 3
# [8,] C A 3
# [9,] C C 4
# [10,] C C 4
我考虑过使用类似的东西,cumsum(!duplicated(DT[, key(DT), with = FALSE]))
但希望有更好的解决方案。我觉得这个向量可能是表格内部表示的一部分,也许有办法访问它?即使不是这样,你有什么建议?