【问题标题】:Assign variable names to list of mcmc objects将变量名称分配给 mcmc 对象列表
【发布时间】:2013-03-07 01:56:48
【问题描述】:

也许这里对 mcmc 对象有更多经验的人可以帮助我。

问题:我有一个存储了 20 多个 mcmc 对象的列表。我需要为每个 mcmc 对象分配变量名。

我有另一个列表,其中包含存储的每个 mcmc 的所有变量名称(作为数据框中的列)。

我可以单独执行此操作,使用 coda 包中的“varnames”函数,如下所示:

“投票”我的数据框列表并“投票”我的 mcmc 对象列表..

names <- votes[[1]]$legis # extracts the names variable for the first dataframe on the list.
varnames(posterior[[1]]) <- names # assings the extracted names as variable names fo the first mcmc object on the list.

但是,我不想一个一个地做这件事,我想一次做完。我试过下面的代码...

p2 <- lapply(posterior, function(x)varnames(posterior[[x]]) <- names)

但我得到 Error in *tmp*[[x]] : Recursive indexing failed at level 2 。我已经尝试了该行的一些变体,但我很难理解如何正确索引它,或者如何做我想做的事情。

我知道这是一个特定的问题,但也许这里有人可以给我一些提示或什么。

提前感谢您的帮助。抱歉,我无法提供一些数据,但很难获得可行的样本。

问候, 费德里科

【问题讨论】:

  • lapply(posterior, function(x) varnames(x) &lt;- names) 应该可以工作,否则当 x 已经是 posterior[[1]] 或后[[2]] 时,您将通过 x 索引 posterior 或后[[2]]`
  • lapply(posterior, setNames, names),我想。
  • Mnel,我已经尝试过你的方法,但我得到了一个模糊的错误。 dimnames(x)[[2]]

标签: r coda mcmc


【解决方案1】:

你不需要做任何 lapply。

试试names(posterior) &lt;- votes[[1]]$legis

【讨论】:

  • 谢谢,但这不起作用,因为所有 mcmc 对象都有不同的长度。我需要将 df.1 的名称列与 mcmc.1 的变量名称匹配(每对的长度匹配)。
猜你喜欢
  • 2019-10-22
  • 1970-01-01
  • 2016-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-29
  • 1970-01-01
相关资源
最近更新 更多