У меня есть 17 объектов big.matrix с файловой поддержкой (dim 10985 x 52598, 4,3 ГБ каждый), из которых я хотел бы рассчитать среднее значение для каждого элемента. Результат может быть сохранен в другом big.matrix (gcm.res.outputM).
biganalytics :: apply () не работает, так как для поля можно установить только 1 или 2. Я попытался использовать 2 для циклов, как показано здесь
gcm.res.outputM <- filebacked.big.matrix(10958, 52598, separated = FALSE, backingfile = "gcm.res.outputM.bin", backingpath = NULL, descriptorfile = "gcm.res.outputM.desc", binarydescriptor = FALSE)
for(i in 1:10958){
for(j in 1:52598){
t <- rbind(gcm.res.output1[i,j], gcm.res.output2[i,j],gcm.res.output3[i,j], gcm.res.output4[i,j],
gcm.res.output5[i,j], gcm.res.output6[i,j],gcm.res.output7[i,j], gcm.res.output8[i,j],
gcm.res.output9[i,j], gcm.res.output10[i,j],gcm.res.output11[i,j], gcm.res.output12[i,j],
gcm.res.output13[i,j], gcm.res.output14[i,j],gcm.res.output15[i,j], gcm.res.output16[i,j],
gcm.res.output17[i,j])
tM <- apply(t, 2, mean, na.rm = TRUE)
gcm.res.outputM[i,j] <- tM
}
}
, что займет около 1,5 минут на строку i и, таким образом, составит около 11 дней.
У кого-нибудь есть идеи, как ускорить этот расчет? Я использую 64x Windows10 с 16 ГБ оперативной памяти.
Спасибо!