我使用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]])
提取骨架也可以做到這一點。還是我複雜?