我正在为贝叶斯分析运行一个长MCMC链。每1000次迭代,我想将我的中间结果(3D阵列)写入磁盘以释放内存。
两种对我不起作用的潜在解决方案:
使用矩阵,我可以轻松write.table(my_matrix, "filename", append = TRUE)
。但是,以这种方式编写3D阵列将其展平为2D。我可以将2D矩阵重塑为3D。但是,这需要在文件本身以外的地方写下原始维度,这不利于再现性。
我可以saveRDS(my_array, "filename")
。但是,我无法在此文件中连续添加新的MCMC样本。