silent option for library function
Kurt Hornik
Kurt.Hornik@wu-wien.ac.at
Wed, 30 Oct 2002 17:25:55 +0100
>>>>> Vincent J Carey, writes:
> would it be possible to add an option to library that
> prevents messages except when there are errors? as
> we build Sweave documents illustrating package functionalities
> it is sometimes desirable to attach a package "behind
> the scenes". packages that have messages emitted
> in .First.lib (often describing version or developer)
> frustrate this particular desire. verbose=FALSE
> does not accomplish this.
> note that i have no objection to messages produced by
> default use of library. i just want the ability to
> suppress them when there are no errors. currently
> it is possible to do
> sink(file="/dev/null")
> library([e.g. affy])
> sink()
> but that may suppress too much -- an error message may be
> lost.
The QA tools use the following:
.loadPackageQuietly <- function(package, lib.loc) {
## Load (reload if already loaded) @code{package} from
## @code{lib.loc}, capturing all output and messages. All QA
## functions use this for loading packages because R CMD check
## interprets all output as indicating a problem.
outConn <- textConnection("out", "w")
sink(outConn, type = "output")
sink(outConn, type = "message")
yy <- try({
pos <- match(paste("package", package, sep = ":"), search())
if(!is.na(pos))
detach(pos = pos)
library(package, lib.loc = lib.loc, character.only = TRUE,
verbose = FALSE)
})
if(inherits(yy, "try-error"))
stop(yy)
sink(type = "message")
sink(type = "output")
close(outConn)
}
-k
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._