[R] suppress startup messages from default packages

Andreas Leha andreas.leha at med.uni-goettingen.de
Mon Jul 15 22:29:47 CEST 2013


Hi Martin,

Martin Morgan <mtmorgan at fhcrc.org> writes:

> On 07/15/2013 06:25 AM, Duncan Murdoch wrote:
>> On 15/07/2013 8:49 AM, Andreas Leha wrote:
>>> Hi Helios,
>>>
>>> "Helios de Rosario" <helios.derosario at ibv.upv.es> writes:
>>>
>>> >> Hi all,
>>> >>
>>> >> several packages print messages during loading.  How do I avoid to
>>> > see
>>> >> them when the packages are in the defaultPackages?
>>> >>
>>> >> Here is an example.
>>> >>
>>> >> With this in ~/.Rprofile
>>> >> ,----[ ~/.Rprofile ]
>>> >> | old <- getOption("defaultPackages")
>>> >> | options(defaultPackages = c(old, "filehash"))
>>> >> | rm(old)
>>> >> `----
>>> >>
>>> >> I get as last line when starting R:
>>> >> ,----
>>> >> | filehash: Simple key-value database (2.2-1 2012-03-12)
>>> >> `----
>>> >>
>>> >> Another package with (even more) prints during startup is
>>> > tikzDevice.
>>> >>
>>> >>How can I avoid to get these messages?
>>> >
>>> >
>>> > There are several options in ?library to control the messages that are
>>> > displayed when loading packages. However, this does not seem be able to
>>> > supress all the messages. Some messages are defined by the package
>>> > authors, because they feel necessary that the user reads them.
>>> >
>>>
>>>
>>> Thanks for your answer.  When I actually call library() or require()
>>> myself I can avoid all messages.  There are hacks to do that even for
>>> the very persistent messages [fn:1].
>>>
>>> My question is how to suppress these messages, when it is not me who
>>> calls library() or require(), but when the package is loaded during R's
>>> startup through the defaultPackages option.
>>
>> You could try the --slave command line option on startup.  If that isn't
>> sufficient, try getting the maintainer to change the package behaviour, or do it
>> yourself.
>
> In a hack-y way ?setHook and ?sink seem to work
>
>> setHook(packageEvent("filehash", "onLoad"), function(...) 
> sink(file(tempfile(), "w"), type="message"))
>> setHook(packageEvent("filehash", "attach"), function(...)
>> sink(file=NULL, 
> type="message"), "append")
>> library(filehash)
>>
>
> Martin


Thanks a lot for this really helpful answer!  Even if that is hack-y, I
am using this now and it solves my 'problem' with the filehash package.

Regards,
Andreas



More information about the R-help mailing list