首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内存耗尽,试图从大mcmc.list中提取

内存耗尽,试图从大mcmc.list中提取
EN

Stack Overflow用户
提问于 2015-03-14 19:41:00
回答 2查看 186关注 0票数 2

我在试图从大型mcmc.list中提取单个变量时遇到了问题

代码语言:javascript
复制
> x <- outRJ$mcmc[,'avail_int']
Error: cannot allocate vector of size 146.8 Mb

outRJ$mcmc mcmc.list很大,实际上是442 MB (包含3个链的数据,每个变量有960个,每次迭代20000次):

代码语言:javascript
复制
> object.size(outRJ$mcmc)/1024/1024
[1] 442.5508 #

但是单变量应该只有234个kB!但是它的提取似乎需要更多的内存!

如何在不需要太多内存的情况下从大型mcmc.list中提取?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-16 11:06:27

当前的子设置代码(在函数[.mcmc.list)中)正在对列表的每个元素进行复制,然后再对其进行设置。我已经修改了coda开发版本中的代码。在此期间,马特的解决办法应该做,因为它也避免了多余的副本。

票数 2
EN

Stack Overflow用户

发布于 2015-03-16 08:21:07

我认为这应该是可行的:

代码语言:javascript
复制
 x <- as.mcmc.list(lapply(outRJ$mcmc, function(x) return(x[,'avail_int',drop=FALSE])))

哑光

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29053356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档