Data.table: FR: asigna nombres a CJ () como lo hace data.table ()

Creado en 17 mar. 2016  ·  3Comentarios  ·  Fuente: Rdatatable/data.table

Lo hago con frecuencia

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

Sería bueno si pudiera salirme con la mía escribiendo colA y colB menos veces. El FR aquí es para

CJ(colA, colB, unique=TRUE, names=TRUE) 

para inferir los nombres colA y colB , quizás usando cualquier método usado por data.frame () y data.table () ( make.names ?).

(La repetición del nombre podría reducirse aún más si on=.Icols fuera una cosa, supongo, pero lo dejaré para un FR separado).

SO publicaciones para actualizar ...

enhancement

Comentario más útil

+1 y no veo la necesidad del argumento names ; este debería ser el único comportamiento. Con el cambio de sintaxis de unión para usar "on" en lugar de setkey esto se ha convertido en un gran problema para mí.

También me gustaría ver que unique = TRUE sea ​​el valor predeterminado; no puedo pensar en _ever_ que no necesite unir los argumentos a CJ .

Todos 3 comentarios

CJ toma ... como primer argumento, y esa función será un método genérico, así que AFAIK tendremos que cambiarlo a CJ(x, ...) , esos cambios se pueden hacer juntos # 1090

+1 y no veo la necesidad del argumento names ; este debería ser el único comportamiento. Con el cambio de sintaxis de unión para usar "on" en lugar de setkey esto se ha convertido en un gran problema para mí.

También me gustaría ver que unique = TRUE sea ​​el valor predeterminado; no puedo pensar en _ever_ que no necesite unir los argumentos a CJ .

@jangorecki Todavía no toqué las cosas # 1090 / # 814. mejor como autónomo, creo, a menos que me esté perdiendo algo

¿Fue útil esta página
0 / 5 - 0 calificaciones