長い行列(ncol = 6、nrow = 50,000,000 +)を持っています。リストでは、[私は1、]、日付でデータフレーム/マトリックスをRのリストに変換する
、
[I]、[4]と[I]、[5]の名前(またはキー)です:私は行列のリストにそれを変換したいです
[I]、[2]及び[I]、[3]時刻である、
[iが、6]リストに格納される値です。
リストの行列はすべて同じ次元です。
for (i in seq(1, nrow(a2015_15))) {
OD_L_2015_15[[
paste(a2015_15[i,4], a2015_15[i,5])
]] [
a2015_15[i,1], paste(a2015_15[i,2], a2015_15[i,3])
] =
as.numeric(a2015_15[i,6])
}
つまり、実行には1〜2時間かかりますが、これは特に遅いコンピュータでは苦痛です。
apply文を使用すると、これをより迅速に実行するための提案はありますか? 私はa2015_15(a2015_15 [i、]を保存して参照しています)への呼び出しを制限しようとしましたが、それは役に立たなかったようです。
ありがとうございました。
編集:
リストに分割されます: ここで私が変更したい行列です OD_L_2015_15 [[キー1、キー2]] [日付、C(タイム、タイム2)] =値
'dput'を使用していくつかの行を表示できますか? - 10程度かかります - ちょうど私たちは遊ぶために再現可能なものを持っています。 – thelatemail
すべての行列のすべての値が「塗りつぶされていますか?たとえば、関連付けられた値がない日付と時刻のペアを使用できますか?そうでなければ、問題はずっと簡単になります。 – nograpes
あなたは 'data.table'パッケージを使用しましたか? – Uwe