我有一个很大的数据框架,它由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