ここでわかることから、data.table v1.8.0+ は文字列を自動的に因数に変換しないと思います。
具体的には、そのページから Matthew Dowle を引用します。
stringAsFactors は必要ありません。v1.8.0 では次のように行われます: o 文字列がキーで許可され、factor よりも優先されます。data.table() と setkey() はもはや文字を因数分解しません。因子は引き続きサポートされます。
私はそれを見ていません...これが私のRセッションのトランスクリプトです:
まず、data.table > 1.8.0 の十分な最新バージョンがあることを確認します。
> library(data.table)
data.table 1.8.8 For help type: help("data.table")
次に、2x2 の data.table を作成します。要因を作成することに注意してください...
> m <- matrix(letters[1:4], ncol=2)
> str(data.table(m))
Classes ‘data.table’ and 'data.frame': 2 obs. of 2 variables:
$ V1: Factor w/ 2 levels "a","b": 1 2
$ V2: Factor w/ 2 levels "c","d": 1 2
- attr(*, ".internal.selfref")=<externalptr>
data.frame() でstringAsFactorsを使用してからdata.table()を呼び出すと、すべてうまくいきます...
> str(data.table(data.frame(m, stringsAsFactors=FALSE)))
Classes ‘data.table’ and 'data.frame': 2 obs. of 2 variables:
$ X1: chr "a" "b"
$ X2: chr "c" "d"
- attr(*, ".internal.selfref")=<externalptr>
私は何が欠けていますか?data.frame() は文字列を要素に変換することになっていますか?もしそうなら、その動作をオフにする「より良い方法」はありますか?
ありがとう!