les données.tableau “indices clés” ou “groupe de comptoir”

Après la création d'une clé sur un ensemble de données.tableau:

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

Je voudrais obtenir un entier vecteur donnant pour chaque ligne correspondant à la "clé de l'index". J'espère que le résultat attendu (colonne i) ci-dessous permettra de clarifier ce que je veux dire:

#       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

J'ai pensé à utiliser quelque chose comme cumsum(!duplicated(DT[, key(DT), with = FALSE])) mais je suis en espérant que il y a une meilleure solution. Je crois que ce vecteur peut faire partie de la table interne de la représentation, et peut-être il ya un moyen d'y accéder? Même si elle n'est pas le cas, que suggérez-vous?

InformationsquelleAutor flodel | 2012-10-22