我有一個很大的數據框架,它由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