试图从大 mcmc.list 中提取内存耗尽
Memory exhausted trying to extract from big mcmc.list
我在尝试从大 mcmc.list
:
中提取单个变量时遇到问题
> x <- outRJ$mcmc[,'avail_int']
Error: cannot allocate vector of size 146.8 Mb
outRJ$mcmc
mcmc.list 很大,实际上有 442 MB(包含 3 个链的数据,大约 960 个变量,每 20000 次迭代):
> object.size(outRJ$mcmc)/1024/1024
[1] 442.5508 #
但是单个变量应该只有234 kB!但是提取它似乎需要更多的内存!
如何在不需要太多内存的情况下从大 mcmc.list 中提取数据?
我认为这应该可行:
x <- as.mcmc.list(lapply(outRJ$mcmc, function(x) return(x[,'avail_int',drop=FALSE])))
马特
当前的子集化代码(在函数 [.mcmc.list 中)正在对列表的每个元素进行子集化之前进行复制。我修改了coda开发版的代码。同时,Matt 的解决方法应该可行,因为它也避免了冗余副本。
我在尝试从大 mcmc.list
:
> x <- outRJ$mcmc[,'avail_int']
Error: cannot allocate vector of size 146.8 Mb
outRJ$mcmc
mcmc.list 很大,实际上有 442 MB(包含 3 个链的数据,大约 960 个变量,每 20000 次迭代):
> object.size(outRJ$mcmc)/1024/1024
[1] 442.5508 #
但是单个变量应该只有234 kB!但是提取它似乎需要更多的内存!
如何在不需要太多内存的情况下从大 mcmc.list 中提取数据?
我认为这应该可行:
x <- as.mcmc.list(lapply(outRJ$mcmc, function(x) return(x[,'avail_int',drop=FALSE])))
马特
当前的子集化代码(在函数 [.mcmc.list 中)正在对列表的每个元素进行子集化之前进行复制。我修改了coda开发版的代码。同时,Matt 的解决方法应该可行,因为它也避免了冗余副本。