簡體   English   中英

試圖從大mcmc.list中提取內存已用盡

[英]Memory exhausted trying to extract from big mcmc.list

我在嘗試從大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的變通辦法應該這樣做,因為它還避免了冗余副本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM