~20,000x20,000 のデータがあります。速度とメモリの点で効率的にdata.table()
を に変換するにはどうすればよいですか?matrix
試してみm = as.matrix(dt)
ましたが、多くの警告が表示されて非常に時間がかかります。df = data.frame(dt)
非常に時間がかかり、メモリの制限にも達します。
これを行う効率的な方法はありますか?dt
または、単に行列形式として返す data.table の関数(glmnet
パッケージを使用して統計モデルにフィードするために必要)?
as.matrix にラップするだけで、以下のエラーが発生します。
x = as.matrix(dt)
Error: cannot allocate vector of size 2.9 Gb
In addition: Warning messages:
1: In unlist(X, recursive = FALSE, use.names = FALSE) : Reached total allocation of 8131Mb: see help(memory.size)
2: In unlist(X, recursive = FALSE, use.names = FALSE) : Reached total allocation of 8131Mb: see help(memory.size)
3: In unlist(X, recursive = FALSE, use.names = FALSE) : Reached total allocation of 8131Mb: see help(memory.size)
4: In unlist(X, recursive = FALSE, use.names = FALSE) : Reached total allocation of 8131Mb: see help(memory.size)
私の OS:私は 64 ビットの Windows7 と 8 GB の RAM を持っています。私の Windows タスク マネージャーは、以前は Rgui.exe が 4 GB 以上のスペースを占有していることを示していましたが、それでも問題ありませんでした。