1- jags2 <- function (data , inits , parameters.to.save , model.file = " model.bug" ,
2- n.chains = 3 , n.iter = 2000 , n.burnin = floor(n.iter / 2 ),
1+ jags2 <- function (data , inits , parameters.to.save , model.file = " model.bug" ,
2+ n.chains = 3 , n.iter = 2000 , n.burnin = floor(n.iter / 2 ),
33 n.thin = max(1 , floor((n.iter - n.burnin )/ 1000 )),
44 DIC = TRUE , jags.path = " " , working.directory = NULL , clearWD = TRUE ,
5- refresh = n.iter / 50 )
5+ refresh = n.iter / 50 )
66{
77 if (! is.null(working.directory )) {
88 working.directory <- path.expand(working.directory )
@@ -14,19 +14,19 @@ jags2 <- function (data, inits, parameters.to.save, model.file = "model.bug",
1414 savedWD <- getwd()
1515 working.directory <- savedWD
1616 }
17-
17+
1818 redo <- ceiling(n.iter - n.burnin )
1919
2020 # data.list <- lapply(as.list(data), get, pos = parent.frame(2))
2121# names(data.list) <- as.list(data)
22-
23-
22+
23+
2424 if (is.list(data )){
25- data.list <- data
26- lapply(data.list , dump , append = TRUE , file = " jagsdata.txt" , envir = parent.frame(1 ))
25+ data.list <- data
26+ lapply(data.list , dump , append = TRUE , file = " jagsdata.txt" , envir = parent.frame(1 ))
2727 }
2828 else {
29- if (! (length(data ) == 1 && is.vector(data ) && is.character(data ) &&
29+ if (! (length(data ) == 1 && is.vector(data ) && is.character(data ) &&
3030 (regexpr(" \\ .txt$" , data ) > 0 ))) {
3131 data.list <- lapply(as.list(data ), get , pos = parent.frame(1 ))
3232 names(data.list ) <- as.list(data )
@@ -40,7 +40,7 @@ jags2 <- function (data, inits, parameters.to.save, model.file = "model.bug",
4040 }
4141 data.list <- data
4242 }
43-
43+
4444 }
4545 lapply(names(data.list ), dump , append = TRUE , file = " jagsdata.txt" )
4646 data <- read.jagsdata(" jagsdata.txt" )
@@ -55,7 +55,7 @@ jags2 <- function (data, inits, parameters.to.save, model.file = "model.bug",
5555 }
5656 write.model(model.file , con = temp )
5757 model.file <- gsub(" \\\\ " , " /" , temp )
58- if (! is.R())
58+ if (! is.R())
5959 on.exit(file.remove(model.file ), add = TRUE )
6060 }
6161 jags.call <- if (jags.path == " " ) {
@@ -70,15 +70,15 @@ jags2 <- function (data, inits, parameters.to.save, model.file = "model.bug",
7070 chain.names <- NULL
7171 if (is.null(inits )){
7272 no.inits <- TRUE
73- }
73+ }
7474 else if (is.function(inits )){
7575 for (i in 1 : n.chains ) {
7676 initial.values <- inits()
7777 inits.files <- c(inits.files , paste(" jagsinits" , i , " .txt" , sep = " " ))
7878 chain.names <- c(chain.names , paste(" chain(" , i , " )" , sep = " " ))
7979 with(initial.values , dump(names(initial.values ), file = paste(" jagsinits" , i , " .txt" , sep = " " )))
8080 }
81- }
81+ }
8282 else if (is.list(inits )){
8383 if (length(inits )== n.chains ){
8484 for (i in 1 : n.chains ) {
@@ -90,40 +90,40 @@ jags2 <- function (data, inits, parameters.to.save, model.file = "model.bug",
9090 } else {
9191 stop(message = " initial value must be specified for all of chains" )
9292 }
93- }
94-
93+ }
94+
9595 if (DIC ){
9696 parameters.to.save <- c(parameters.to.save , " deviance" )
9797 # load.module("dic", quiet = TRUE)
9898 }
9999
100-
101- cat(" model clear\n data clear\n " ,
100+
101+ cat(" model clear\n data clear\n " ,
102102 if (DIC ){
103103 " load dic\n "
104104 },
105- " model in " , " \" " , model.file , " \" " , " \n " ,
105+ " model in " , " \" " , model.file , " \" " , " \n " ,
106106 " cd " , " \" " , working.directory , " \" " , " \n " ,
107- " data in " , " \" jagsdata.txt\" " , " \n " ,
108- " compile, nchains(" , n.chains , " )" , " \n " ,
107+ " data in " , " \" jagsdata.txt\" " , " \n " ,
108+ " compile, nchains(" , n.chains , " )" , " \n " ,
109109 if (! no.inits ){
110110 paste(" inits in \" " , inits.files , " \" , " , chain.names , " \n " , sep = " " )
111- },
112- " initialize" , " \n " ,
113- " update " , n.burnin , " , by(" , refresh , " )\n " ,
114- paste(" monitor " , parameters.to.save , " , thin(" , n.thin , " )\n " , sep = " " ),
115- " update " , redo , " , by(" , refresh , " )\n " ,
111+ },
112+ " initialize" , " \n " ,
113+ " update " , n.burnin , " , by(" , refresh , " )\n " ,
114+ paste(" monitor " , parameters.to.save , " , thin(" , n.thin , " )\n " , sep = " " ),
115+ " update " , redo , " , by(" , refresh , " )\n " ,
116116 " coda *\n " , sep = " " , file = " jagsscript.txt" )
117117
118118 system(paste(jags.call , " jagsscript.txt" ))
119-
120- fit <- jags.sims(parameters.to.save = parameters.to.save ,
121- n.chains = n.chains , n.iter = n.iter , n.burnin = n.burnin ,
119+
120+ fit <- jags.sims(parameters.to.save = parameters.to.save ,
121+ n.chains = n.chains , n.iter = n.iter , n.burnin = n.burnin ,
122122 n.thin = n.thin , DIC = DIC )
123-
123+
124124 if (clearWD ) {
125- file.remove(c(" jagsdata.txt" , " CODAindex.txt" , inits.files ,
126- " jagsscript.txt" , paste(" CODAchain" , 1 : n.chains ,
125+ file.remove(c(" jagsdata.txt" , " CODAindex.txt" , inits.files ,
126+ " jagsscript.txt" , paste(" CODAchain" , 1 : n.chains ,
127127 " .txt" , sep = " " )))
128128 }
129129 class(fit ) <- " bugs"
0 commit comments