je fais souvent
DT[CJ(colA = colA, colB = colB, unique=TRUE), on=c("colA","colB")]
# to complete missing levels
# or
DT[, CJ(colA = colA, colB = colB, unique=TRUE)][!DT, on=c("colA","colB")]
# to identify missing levels
# http://stackoverflow.com/a/36065607/1191259
Ce serait bien si je pouvais écrire colA
et colB
moins de fois. Le FR ici est pour
CJ(colA, colB, unique=TRUE, names=TRUE)
pour déduire les noms colA
et colB
, peut-être en utilisant la méthode utilisée par data.frame() et data.table() ( make.names
?).
(La répétition du nom pourrait être encore réduite si on=.Icols
était une chose, je suppose, mais je vais laisser cela pour un FR séparé.)
SO messages à mettre à jour...
CJ
prend ...
comme premier argument, et cette fonction va être une méthode générique, donc AFAIK nous devrons la changer en CJ(x, ...)
, ces changements peuvent être faits ensemble # 1090
+1 et je ne vois pas la nécessité de l'argument names
- cela devrait être le seul comportement. Avec le changement de syntaxe de jointure pour utiliser "on" au lieu de setkey
cela est devenu un gros point de friction pour moi.
J'aimerais également que unique = TRUE
soit la valeur par défaut - je ne peux pas imaginer _jamais_ avoir besoin d'unifier les arguments à CJ
.
@jangorecki Je n'ai pas encore touché aux trucs #1090 / #814. mieux comme autonome, je pense, à moins que je manque quelque chose
Commentaire le plus utile
+1 et je ne vois pas la nécessité de l'argument
names
- cela devrait être le seul comportement. Avec le changement de syntaxe de jointure pour utiliser "on" au lieu desetkey
cela est devenu un gros point de friction pour moi.J'aimerais également que
unique = TRUE
soit la valeur par défaut - je ne peux pas imaginer _jamais_ avoir besoin d'unifier les arguments àCJ
.