私は、RStudioサーバーに9つのmioオブジェクトからなる大きなデータフレームを以下の形式で持っています(各installnrには多くの読み込みがあります)。そして、毎時のすべての読み取り値の平均と標準エラーバーを計算するスクリプトを実行すると、 Rがクラッシュします。巨大な計算時間を避け、メモリサイズを超える最善の方法は何ですか?大きなデータフレームを処理するときに計算時間を短縮する最も良い方法は何ですか?
installnr readdate readings
1 002345 2014-08-17 {0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,2,0}
2 002345 2014-08-18 {0,0,0,0,0,0,4,1,0,0,0,0,1,1,1,1,0,1,1,1,1,1,0,1}
3 002345 2014-08-19 {0,1,2,1,0,1,1,1,2,0,1,0,1,0,1,0,1,0,1,0,2,1,1,0}
4 013459 2014-08-17 {1,0,0,1,0,1,1,1,1,0,1,0,1,0,1,0,0,1,3,1,0,0,1,1}
5 127465 2014-08-19 {0,1,0,0,1,0,1,1,1,0,0,1,2,0,1,0,0,1,1,0,0,1,1,1}
私が実行しているスクリプトの例は以下の通りです:あなたはあなたの入力フォーマットに固執したい場合
df$readings = gsub("[{}]", "", as.character(df$readings))
Read1 = strsplit(df$readings, ",")
Readings = matrix(as.numeric(unlist(Read1)), nrow=length(Read1))
colMeans(Readings)
'data.table'または' dplyr'を試してください – Rentrop
作成している行列が大きすぎます。そのため、メモリ不足のためです。平均値に興味がある場合は、各行をループし、各列の合計を維持してください。最後にnrow(df)で割ります。 – thc
私はread.csvを使って完全なデータフレームをインポートしています... – peny