Data.table: FR: Weisen Sie CJ() Namen zu, wie es data.table() tut

Erstellt am 17. März 2016  ·  3Kommentare  ·  Quelle: Rdatatable/data.table

mache ich häufig

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

Es wäre schön, wenn ich colA und colB seltener schreiben könnte. Das FR hier ist für

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

um die Namen colA und colB abzuleiten, vielleicht mit der Methode, die von data.frame() und data.table() verwendet wird ( make.names ?).

(Die Namenswiederholung könnte weiter reduziert werden, wenn on=.Icols eine Sache wäre, nehme ich an, aber ich lasse das für ein separates FR.)

SO Beiträge zum Aktualisieren...

enhancement

Hilfreichster Kommentar

+1 und ich sehe keine Notwendigkeit für das Argument names - dies sollte das einzige Verhalten sein. Mit der Änderung der Join-Syntax zur Verwendung von "on" anstelle von setkey dies für mich zu einem großen Knackpunkt geworden.

Ich würde auch gerne unique = TRUE als Standard sehen - ich kann mir nicht vorstellen, _jemals_ die Argumente nicht eindeutig auf CJ .

Alle 3 Kommentare

CJ nimmt ... als erstes Argument, und diese Funktion wird eine generische Methode sein, also AFAIK müssen wir sie in CJ(x, ...) ändern, diese Änderungen können zusammen vorgenommen werden # 1090

+1 und ich sehe keine Notwendigkeit für das Argument names - dies sollte das einzige Verhalten sein. Mit der Änderung der Join-Syntax zur Verwendung von "on" anstelle von setkey dies für mich zu einem großen Knackpunkt geworden.

Ich würde auch gerne unique = TRUE als Standard sehen - ich kann mir nicht vorstellen, _jemals_ die Argumente nicht eindeutig auf CJ .

@jangorecki Ich habe das Zeug Nr. 1090 / Nr. 814 noch nicht

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen