由于WinBUGS和R有不同的方法来组织数组的数据,所以在使用R2WinBUGS时,我应该如何组织数据,以确保顺序正确?谢谢!
发布于 2013-05-20 05:52:16
如果您将数据指定为对象的命名列表(参见? R2WinBUGS - data参数),那么在bugs中就不必担心这个问题。R2WinBUGS将重新组织数据,使其在WinBUGS中的结构与在R中的结构相同。
例如,如果在R中指定一个数组:
y <- array(1:24,dim=c(2,3,4))看起来像是
> y
, , 1
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
, , 2
[,1] [,2] [,3]
[1,] 7 9 11
[2,] 8 10 12
, , 3
[,1] [,2] [,3]
[1,] 13 15 17
[2,] 14 16 18
, , 4
[,1] [,2] [,3]
[1,] 19 21 23
[2,] 20 22 24然后在bugs函数的data参数中指定(例如bugs(data=list(y=y)...),则WinBUGS (data.txt)的数据为:
list(y= structure(.Data= c(1.00000E+00, 7.00000E+00, 1.30000E+01, 1.90000E+01,
3.00000E+00, 9.00000E+00, 1.50000E+01, 2.10000E+01, 5.00000E+00, 1.10000E+01,
1.70000E+01, 2.30000E+01, 2.00000E+00, 8.00000E+00, 1.40000E+01, 2.00000E+01,
4.00000E+00, 1.00000E+01, 1.60000E+01, 2.20000E+01, 6.00000E+00, 1.20000E+01,
1.80000E+01, 2.40000E+01), .Dim=c(2, 3, 4)))在WinBUGS中如下所示:
y[1,1,1] 1.0
y[1,1,2] 7.0
y[1,1,3] 13.0
y[1,1,4] 19.0
y[1,2,1] 3.0
y[1,2,2] 9.0
y[1,2,3] 15.0
y[1,2,4] 21.0
y[1,3,1] 5.0
y[1,3,2] 11.0
y[1,3,3] 17.0
y[1,3,4] 23.0
y[2,1,1] 2.0
y[2,1,2] 8.0
y[2,1,3] 14.0
y[2,1,4] 20.0
y[2,2,1] 4.0
y[2,2,2] 10.0
y[2,2,3] 16.0
y[2,2,4] 22.0
y[2,3,1] 6.0
y[2,3,2] 12.0
y[2,3,3] 18.0
y[2,3,4] 24.0https://stackoverflow.com/questions/16633038
复制相似问题