我使用rjags
作为采样器。该模型定义了3个矩阵。函数coda.samples
返回样本列表。如果我拿第一个样本列表,列名看起来像这样:重建mcmc对象的变量
> 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]])
提取骨架也可以做到这一点。还是我复杂?