Rchievement of the day

August 16, 2011
By

(This article was first published on ASCIImoose: William K. Morris’s Blog » R, and kindly contributed to R-bloggers)

Today ‘rjags’ was annoying me. The function ‘update.jags’ was (without asking me) disabling the progress bar when I was running R non-interactively. It was annoying, as I was sending R output to a log file in my dropbox, and having model progress written to a remotely accessible file would have == cool! A quick look at the source code showed it was just a tiny change required to get the progress bar back on. Unfortunately ‘update.jags’ is a relatively low level function attached to the ‘rjags’ namespace and not exported. So simply redefining it wasn’t an option. But changing the source and reinstalling ‘rjags’ seemed like overkill and I’d have to do that every time ‘rjags’ was updated. Wouldn’t it be cool if you could just reassign an object inside a namespace? Well you can!

assignInNamespace('update.jags', value=eval(parse(text=gsub(' interactive() &&',
  '', deparse(rjags:::update.jags), fixed=TRUE))), ns='rjags',
  envir='package:rjags')

Use ‘gsub’ to remove the offending bit of R code, ' interactive() &&', and a combo of ‘:::’, ‘deparse’, ‘parse’ and ‘eval’ to get the original function and feed it back to the namespace in an altered form. Pretty cool.


To leave a comment for the author, please follow the link and comment on his blog: ASCIImoose: William K. Morris’s Blog » R.

R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...



If you got this far, why not subscribe for updates from the site? Choose your flavor: e-mail, twitter, RSS, or facebook...

Comments are closed.

Sponsors

Mango solutions

Zero Inflated Models and Generalized Linear Mixed Models with R

Quantide: statistical consulting and training

RStudio homepage

REvolution analytics

http://www.eoda.de

Plotly: collaborative, publication-quality graphing.







rapporter.net: An R based reporting and data analysis platform in the cloud