2013-05-17 6 views
7

fix(DT)data.tableに実行するたびに、修正ウィンドウを閉じた後にDTdata.frameオブジェクトに変わります。これは正常ですか?Data.tableオブジェクトはfix()を呼び出した後にdata.frameに変わります。

library(data.table) 
DT <- data.table(a = 1:2, b = 2:3) 

> class(DT) 
[1] "data.table" "data.frame" 

fix(DT) 

# close the window 

> class(DT) 
[1] "data.frame" 

EDIT:

いくつかのセッション情報:

R version 3.0.0 (2013-04-03) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 
+2

普通だと思います。 'fix'と' edit'はデータテーブルではなくデータフレームに適用される関数です。したがって、彼らはDTのコピーを取ってそれを修正し、それをデータフレームとして返し、オリジナルのDTをそれに置き換えるでしょう。 – juba

+4

... 'edit'のためのdata.tableメソッドはありません。したがって、data.tableもdata.frameであるため、 'edit.data.frame'が使用されます。とにかく 'fix'を使ってdata.tableで作業するのは意味がありません。通常、data.setはそれには大きすぎます。 – Roland

+0

効率が心配されていない場合は、 'utils ::: edit.data.frame'をラップした' edit.data.table'メソッドを書くことができます... –

答えて

3

fixeditを呼び出します。ただし、edit(チェックはmethods(edit)を使用してください)のdata.tableメソッドはありません。 data.tableもdata.frameであるため、edit.data.frameが代わりに使用され、document.frameとしてdata.frameが返されます。

自分でedit.data.tableと書くこともできますが、data.tablesは賢明な方法で編集するには大きすぎることが多いので、お勧めしません。

関連する問題