Data.table: FR : attribuez des noms à CJ() comme le fait data.table()

Créé le 17 mars 2016  ·  3Commentaires  ·  Source: Rdatatable/data.table

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...

enhancement

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 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 .

Tous les 3 commentaires

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

Cette page vous a été utile?
0 / 5 - 0 notes