3

OpenBugsを使用するためにRコードを実行しようとしています。それは昨日までうまく機能していました、そして私はそれがいくつかのエラーを示し始めたことを私が何をしたのか分かりません。次に、いくつかの簡単な例がうまく機能するかどうかを確認することにしました。そこで、R2WinBUGSビネットにある学校の例を試してみました。

ファイルschools.txtのモデルは

sink("schools.txt")
cat("
      model {
      for (j in 1:J)
      {
        y[j] ~ dnorm (theta[j], tau.y[j])
        theta[j] ~ dnorm (mu.theta, tau.theta)
        tau.y[j] <- pow(sigma.y[j], -2)
      }
      mu.theta ~ dnorm (0.0, 1.0E-6)
      tau.theta <- pow(sigma.theta, -2)
      sigma.theta ~ dunif (0, 1000)
    }",fill=TRUE)
sink()

プログラムの残りの部分を実行するためのコードは次のとおりです。

    data(schools)
 J <- nrow(schools)
 y <- schools$estimate
 sigma.y <- schools$sd
 data <- list ("J", "y", "sigma.y")

inits <- function()
{ 
  list(theta = rnorm(J, 0, 100), mu.theta = rnorm(1, 0, 100),sigma.theta = runif(1, 0, 100))
}

schools.sim <- bugs(data, inits, model.file = "schools.txt",parameters = c("theta", "mu.theta", "sigma.theta"),n.chains = 3, n.iter = 1000) 

残念ながら、以前と同じエラーが発生します。

 > schools.sim <- bugs(data, inits, model.file = "schools.txt",parameters = c("theta", "mu.theta", "sigma.theta"),n.chains = 3, n.iter = 1000)
    Error in sd(as.vector(ai)) : unused argument(s) (as.vector(ai))

私も指定しようとprogram=c('OpenBugs') しましたが、OpenBugsがパスにあることを考えると、別の奇妙なエラーが発生します

     Error in bugs(data, inits, model.file = "schools.txt", parameters = c("theta",  : 
  unused argument(s) (program = c("OpenBugs"))

編集

> sessionInfo()
R version 2.15.2 (2012-10-26)
Platform: i386-w64-mingw32/i386 (32-bit)

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] parallel  stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] abind_1.4-0        rjags_3-9          R2WinBUGS_2.1-18   BRugs_0.8-0        R2OpenBUGS_3.2-2.1
[6] LearnBayes_2.12    coda_0.16-1        lattice_0.20-10   

loaded via a namespace (and not attached):
[1] boot_1.3-7    grid_2.15.2   plyr_1.8      stringr_0.6.2 tools_2.15.2 

traceback()与える...

> traceback()
No traceback available

編集-2

  > getAnywhere("sd")
2 differing objects matching ‘sd’ were found
in the following places
  .GlobalEnv
  package:stats
  namespace:stats
Use [] to view one of them` 

sd定義したものを削除するにはどうすればよい.GlobalEnvですか?

編集-3

問題が解決しました。ワークスペースからオブジェクトを削除するsdと、すべてが機能しました。

4

1 に答える 1

0

私はあなたがどういうわけかsddefinedの奇妙なバージョンを手に入れたと思います。結果はgetAnywhere("sd")$where何ですか?する必要があります"package:stats" "namespace:stats"。そうした場合、ワークスペースに名前がattach(schools)付けられた別のオブジェクトが作成されることがわかりsdますが、それは関数ではないため、問題は発生しません。

解決策:rm(sd)またはrm("sd")(後者の方がおそらく良いでしょう)

于 2013-01-30T20:53:39.003 に答える