【发布时间】:2017-04-12 02:55:02
【问题描述】:
我使用rjags 作为采样器。该模型定义了 3 个矩阵。 coda.samples 函数返回样本列表。如果我采用第一个示例列表,列名看起来像这样:
> colnames(output[[1]])
"A[1,1]" "A[2,1]" "A[1,2]" "A[2,2]" ...
"B[1,1]" "B[2,1]" "B[3,1]" "B[4,1]" ...
"C[1,1]" "C[2,1]"
显然,A、B 和 C 是我模型中的矩阵。我想根据这些样本的平均值重建它们。我可以使用colMeans(output[[1]]) 轻松获得方法,但我不知道如何轻松地从该向量重建矩阵。
重建的一个好方法是relist() 函数。因此,如果我在列表L = list(A=A,B=B,C=C) 中有矩阵 A、B 和 C,那么我可以使用 unlist() 将此列表转换为向量并使用 relist() 转换回来。我正在为 mcmc 对象寻找类似/现成的东西,但到目前为止无济于事 - 我不敢相信我是第一个需要这个的人。显然,relist(colMeans(output[[1]])) 不起作用。
谁能帮我重建?
编辑:还要注意relist() 函数只需要一个骨架,因此从colnames(output[[1]]) 中提取骨架也可以解决问题。还是我复杂了?
【问题讨论】: