Data.table: FR:data.table()のようにCJ()に名前を割り当てます

作成日 2016年03月17日  ·  3コメント  ·  ソース: Rdatatable/data.table

私は頻繁に行います

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

colAcolB書き込み回数を減らすことができれば、それは素晴らしいことです。 ここのFRは

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

colAcolBの名前を推測するには、おそらくdata.frame()とdata.table()( make.names ?)で使用されるメソッドを使用します。

on=.Icolsが問題である場合は、名前の繰り返しをさらに減らすことができると思いますが、別のFRに残しておきます。)

更新するSO投稿...

enhancement

最も参考になるコメント

+1と私はnames引数の必要性を見ていません-これが唯一の動作であるはずです。 結合構文がsetkey代わりに「on」を使用するように変更されたことで、これは私にとって大きな問題になりました。

また、 unique = TRUEデフォルトにしたいと思います。 CJ引数を一意にする必要がないことは考えられません。

全てのコメント3件

CJは最初の引数として...を取り、その関数はジェネリックメソッドになるので、AFAIKでCJ(x, ...)に変更する必要があります。これらの変更は、一緒に行うことができます。 1090

+1と私はnames引数の必要性を見ていません-これが唯一の動作であるはずです。 結合構文がsetkey代わりに「on」を使用するように変更されたことで、これは私にとって大きな問題になりました。

また、 unique = TRUEデフォルトにしたいと思います。 CJ引数を一意にする必要がないことは考えられません。

@ jangorecki #1090 /#814のものにはまだ触れていません。 何かが足りない場合を除いて、自己完結型の方が良いと思います

このページは役に立ちましたか?
0 / 5 - 0 評価