いい視点ね。の出力を変更しましたdata.table(NULL)
。v1.8.9 の NEWS より:
FAQ 2.5 は次のようになります。
FAQ 2.5 null の data.table は DT[0] と同じですか?
いいえ。「null data.table」とは、data.table(NULL)
またはの結果を意味しas.data.table(NULL)
ます。つまり、
> data.table(NULL)
Null data.table (0 rows and 0 cols)
> as.data.table(NULL)
Null data.table (0 rows and 0 cols)
> data.frame(NULL)
data frame with 0 columns and 0 rows
> as.data.frame(NULL)
data frame with 0 columns and 0 rows
nulldata.table|frame
にはNULL
いくつかの属性が付加されているため、それはもうありませ
NULL
ん。R では、ピュアのみNULL
がNULL
によってテストされていis.null()
ます。「null data.table」を参照する場合、大文字の NULL と区別しやすいように小文字の null を使用します。null の data.table をテストするには、
length(DT)==0
or ncol(DT)==0
(length
プリミティブ関数であるため、少し高速です) を使用します。空の data.table ( DT[0]
) には 1 つ以上の列があり、そのすべてが空です。これらの空の列にはまだ名前と型があります:
> DT = data.table(a=1:3,b=c(4,5,6),d=c(7L,8L,9L))
> DT[0]
Empty data.table (0 rows) of 3 cols: a,b,d
> sapply(DT[0],class)
a b d
"integer" "numeric" "integer"