开发者

Library/package development - message when loading

is there any way to display a message when a user loads library(myCustomLibrary)? Upon loading, I want to disp开发者_运维技巧lay a message that tells the user how to run all the test functions.


Quick points (and updated edit in 2021):

  • while if your package has a NAMESPACE, then .onLoad() is where you used to do this: but .onLoad() has been required to be 'silent'

  • if your package has a NAMESPACE, then .onAttach() is where can call, preferably via packageStartupMessage() (which can be suppressed where cat() or message() cannot

  • if your package does not have NAMESPACE, then you must add one now (and .First.lib() was where you used to do this) -- NAMESPACES have been mandatory for a few years now

  • either way, use packageStartupMessage() instead of cat() so that users have a choice of suppressing this.


Yes. You can use the .onLoad, .onAttach, or .First.lib functions to do whatever you want when the package is loaded. I suggest looking at the help for those functions. You would use .onLoad with a namespace, and .First.lib without.

One convention is that people will frequently put these commands in a separate zzz.R file, which is just used for package related code.


Updated answer (2019):

In the help section "Good practice" in ?.onAttach the recommendation is now:

Loading a namespace [= in .onLoad] should where possible be silent, with startup messages given by .onAttach. These messages (and any essential ones from .onLoad) should use packageStartupMessage so they can be silenced where they would be a distraction.

R CMD CHECK will complain if .onLoad is not silent...

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜