R で bigmemory パッケージを使用した 0 と 1 の大きなファイル (約 500K 行と 20K 列) を作成する必要があります。
これは私にとって初めてのことであり、クエリに対する答えをまだ見つけることができていません。
big1 = big.matrix(nrow=nrow(mm),ncol=nrow(cod),init=0,type="char",dimnames = list(as.character(mm$id),cod$coding),backingfile = "big1.bin", descriptorfile = "big1.desc")
is.filebacked(big1) #TRUE
big2 = filebacked.big.matrix(nrow=nrow(mm),ncol=nrow(cod),init=0,type="char",dimnames = list(as.character(mm$id),cod$coding),backingfile = "big2.bin", descriptorfile = "big2.desc")
## presently the for loop step takes about 2 hours
for (i in 1:nrow(big1)){
big1[i, match(some_columns)] = 1
}
}
## eventually writing out the big.matrix to file using write.big.matrix also takes about 2 hours.
sessionInfo R バージョン 3.3.0 プラットフォーム: x86_64-pc-linux-gnu (64 ビット) 実行環境: Scientific Linux 6.9
これら2つの違いは何ですか?big1 または big2 の一部のセルに 1 を割り当てるときの違いを知りたいですか? どちらの場合も初期化されると、これらはバッキング ファイルと記述子ファイルに保存されますか? それとも何か他のことをしなければなりませんか?
セッションの .RData を保存し (最初のインスタンスでバッキング ファイルと記述子ファイルなしで big1 を使用)、それを R にロードしようとすると、致命的なエラーが発生し、セッションが終了しました。したがって、すべてをやり直すために毎回数時間を無駄にするのではなく、.RData をロードするためにここでより効率的にできることを知りたいと思います。
どうもありがとう。