[R] Making R talk to Win/OpenBUGS in Linux (again)

Uwe Ligges ligges at statistik.uni-dortmund.de
Wed May 3 18:39:40 CEST 2006


Finally fixed for the next release - and will also include the bugsLog() 
stuff as well.

Best,
Uwe


Gregor Gorjanc wrote:

> Hello Paul,
> 
> thank you very much for this report. You caught a bug in R2WinBUGS that
> was introduced by me. I added support for winepath in 1.1-1 version.
> Since I switch between Windows and Linux I always set WINEPATH and then
> use it in bugs(). That's why I forgot to add it in further calls in
> bugs(). How silly :( This actually means that nobody else beside you
> tried to run R2WinBUGS under Linux. To bad. Please report summary to
> BUGS list as you have also asked there for help and I did not had time
> to answer you. I have been successfully running R2WinBUGS under Linux
> for quite some time now.
> 
> Now you have the following options:
> 
> A Set WINEPATH before you call bugs()
> 
> i.e.
> 
> WINEPATH <- "/usr/bin/winepath"
> 
> bugs(..., WINEPATH=WINEPATH)
> 
> This is the fastest approach for you.
> 
> B Apply the following diffs, build and install R2WinBUGS by yourself
> 
> I am also sendind them to maintainer of the package. So this should be
> fixed soon also on CRAN. Uwe?
> 
> --- R2WinBUGSOrig/R/bugs.R      2006-04-29 21:44:59.000000000 +0200
> +++ R2WinBUGS/R/bugs.R  2006-04-30 12:52:36.000000000 +0200
> @@ -44,7 +44,7 @@
>    } else new.model.file <- model.file
>    bugs.script(parameters.to.save, n.chains, n.iter, n.burnin, n.thin,
>      bugs.directory, new.model.file, debug=debug, is.inits=!is.null(inits),
> -    bin = bin, DIC = DIC, useWINE = useWINE, newWINE = newWINE)
> +    bin = bin, DIC = DIC, useWINE = useWINE, newWINE = newWINE,
> WINEPATH=WINEPATH)
>    #if (useWINE && missing(bugs.directory))
>    #  bugs.directory <- winedriveTr(bugs.directory)
>    bugs.run(n.burnin, bugs.directory, WINE = WINE)
> 
> --- R2WinBUGSOrig/R/bugs.script.R       2006-04-29 21:44:59.000000000 +0200
> +++ R2WinBUGS/R/bugs.script.R   2006-04-30 12:52:12.000000000 +0200
> @@ -1,7 +1,7 @@
>  "bugs.script" <-
>  function (parameters.to.save, n.chains, n.iter, n.burnin,
>      n.thin, bugs.directory, model.file, debug=FALSE, is.inits, bin,
> -    DIC = FALSE, useWINE = FALSE, newWINE = FALSE){
> +    DIC = FALSE, useWINE = FALSE, newWINE = FALSE, WINEPATH=NULL){
> 
> 
>>I'm back!
>>
>>I've just learned that, on a fully updated Fedora Core Linux5 sytem,
>>the working solution to access Winbugs under wine via the R package
>>"rbugs" no longer works.  Here was my last post on this topic (with
>>the formerly working solution) from January.
>>
>>http://finzi.psych.upenn.edu/R/Rhelp02a/archive/68497.html
>>
>>Currently, what happens is that WinBUGS starts up, but just sits there
>>doing nothing.  I do not know if the problem is due to a change in
>>wine or rbugs, and since both of them are updated, it is hard to say. 
>>I'm thinking it is a wine or perhaps even a kernel related problem. 
>>Inside WinBUGS running under wine, it does not even work to manually
>>open the bugs.script file and then choose "Model/Script".  it just
>>returns a screen full of errors saying the commands fail.  I don't
>>think rbugs gets even that far, however, since the WinBUGS window does
>>pop up, but nothing happens.
>>
>>rbugs has been retooled to emphasize use of linbugs, the
>>OpenBUGS-based thing for linux, but I can't get linbugs to run at all
>>on my system, and the linbugs program itself appears to have been
>>removed from OpenBUGS distribution altogether. (I'm following that
>>with separate email to the OpenBUGS group).
>>
>>I think JAGS is the right long term solution, but currently I'm in the
>>middle of a semester trying to teach about Bayesian stats and the
>>students have some familiarity with WinBUGS and I'm interested in
>>making it work. So while I'm learning more about JAGS and the bayesmix
>>package that supports access to it from R, I still would like a way to
>>interact with Winbugs through Wine.
>>
>>If anybody has rbugs working in current Linux, please tell me
>>how--give me a working example?
>>
>>In the meanwhile, I've noticed that nightly updates have successfully
>>installed R2WinBUGS on linux systems and I've got a small test case
>>that I'd like to ask about.  Since rbugs is a linux adaptation of
>>R2WinBUGS, and R2WinBUGS is now buildable on Linux, it looks like
>>R2WinBUGS may be the way to go.  But it fails.  The error centers
>>around the "WINEPATH" setting.  I've learned that wine has a function
>>"winepath" that returns information that programs can use, and I've
>>fiddled this lots of ways, but it fails, saying
>>
>>
>>Error in paste(WINEPATH, "-w", x) : object "WINEPATH" not found
>>library(R2WinBUGS)
>>
>>I hope that by giving you this small not-yet-working example, you can
>>spot where I'm going wrong.
>>
>>##Paul Johnson 2006-04-29
>>
>>
>>library(R2WinBUGS)
>># Copied from Prof Andrew Gelman's example
>>model.file <- system.file(package = "R2WinBUGS", "model", "schools.txt")
>>#
>>file.show(model.file)
>>data(schools)
>>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))
>>}
>>parameters <- c("theta", "mu.theta", "sigma.theta")
>>
>>
>>schools.sim <- bugs(data, inits, parameters, model.file, n.chains = 3,
>>n.iter = 1000,bugs.directory = "/usr/local/share/WinBUGS14/",
>>working.directory = "/tmp", clearWD = FALSE, useWINE=T, newWINE=T,
>>WINE="/usr/bin/wine",WINEPATH="/usr/bin/winepath")
>>
>>
>>
>>I do have the binary "/usr/bin/winepath", but can't tell how to give
>>R2WinBUGS what it wants.  Many failed efforts below:
>>
>>
>>
>>
>>>>schools.sim <- bugs(data, inits, parameters, model.file, n.chains = 3, n.iter = 1000,bugs.directory = "/usr/local/share/WinBUGS14/", working.directory = "/tmp", clearWD = FALSE, useWINE=T, newWINE=T, WINE="/usr/bin/wine",WINEPATH="/usr/bin/")
>>
>>Error in paste(WINEPATH, "-w", x) : object "WINEPATH" not found
>>
>>
>>>>schools.sim <- bugs(data, inits, parameters, model.file, n.chains = 3, n.iter = 1000,bugs.directory = "/usr/local/share/WinBUGS14/", working.directory = "/tmp", clearWD = FALSE, useWINE=T, newWINE=T, WINE="/usr/bin/wine")
>>
>>Error in if (!nchar(WINEPATH)) { : argument is of length zero
>>
>>
>>>>schools.sim <- bugs(data, inits, parameters, model.file, n.chains = 3, n.iter = 1000,bugs.directory = "/usr/local/share/WinBUGS14/", working.directory = "/tmp", clearWD = FALSE, useWINE=T, newWINE=T, WINE="/usr/bin/wine",WINEPATH="/usr/bin")
>>
>>Error in paste(WINEPATH, "-w", x) : object "WINEPATH" not found
>>
>>
>>
>>I know there are many unknowns here, but hope somebody has at least
>>one working example that we can build on.
> 
> 
>




More information about the R-help mailing list