2

R で R2WinBUGS を実行するとエラーが発生します。再現性のコードを次に示します。

#Set working directory 
setwd("H://AChaudhuri/Testing/CSVS")

matrix=NULL 
csvs <- paste("MVN", 1:2, ".csv", sep="") 
for(i in 1:length(csvs)){ 
matrix[[i]] <- read.csv(file=csvs[i], header=T) 
print(matrix[[i]]) 
} 

だから今、私は次のように見える2つのシミュレートされたデータセットを読みました

  Y1 Y2 
1 11  6 
2  8  5 
3 25 13 
4  1 13 
5  8 22 

  Y1 Y2 
1  9  1 
2  7  9 
3 25 13 
4  1 18 
5  9 12 

私の次のステップは、これらのデータセットで多変量ロジット正規モデルを実行し、そのようなシミュレートされたデータセットに対してこのプロセスを自動化することです。モデルステートメントは次のとおりです。

model 
 { 
for (j in 1 : Nf) 

  { 
  p1[j, 1:2 ] ~ dmnorm(gamma[1:2 ], T[1:2 ,1:2 ]) 

  for (i in 1:2) 
  { 
 logit(p[j,i])<-p1[j,i] 

Y[j,i] ~ dbin(p[j,i],n) 
}} 

次のコードを使用して R2WinBUGS で実行しようとしています

bugs.output <- list() 
for(i in 1:2){                            
   Y <-(matrix[i])
   bugs.output[[i]] <- bugs( 
   data=list(Y=Y, Nf=5), # change for no of sites 
inits=NULL, 
   model.file="M-LN_model_trial.txt", 
   parameters.to.save = c("p","rho","sigma2"), 
   n.chains=1, n.iter=12000, n.burnin=5000, 
   bugs.directory="H://AChaudhuri/winbugs14/WinBUGS14", 
   working.directory=NULL)} 

   Error in FUN(X[[1L]], ...) : 
   .C(..): 'type' must be "real" for this format

> traceback()
6: .C("str_signif", x = x, n = n, mode = as.character(mode), width =       as.integer(width), 
   digits = as.integer(digits), format = as.character(format), 
   flag = as.character(flag), result = blank.chars(i.strlen), 
   PACKAGE = "base")
5: FUN(X[[1L]], ...)
4: lapply(data, formatC, digits = digits, format = "E")
3: write.datafile(lapply(data, formatC, digits = digits, format = "E"), 
   file.path(dir, data.file))
2: bugs.data(data, dir = getwd(), digits)
1: bugs(data = list(Y = Y, Nf = 5), model.file = "M-LN_model_trial.txt", 
   parameters.to.save = c("p", "rho", "sigma2"), n.chains = 1, 
   n.iter = 12000, n.burnin = 5000, bugs.directory = "C://Tina/USB_Backup_042213 /winbugs14/WinBUGS14", 
   working.directory = NULL)

どんな提案も役に立ちます。ありがとう!

4

1 に答える 1

1

同じエラーが発生しました。私の場合、問題は Y が 0/1 形式ではなく True/False であったという事実でした。

于 2013-08-23T14:55:05.663 に答える