Cook R计算机@linux_python_R 技术帖

【r<-开发】包加载时输出信息

2018-12-25  本文已影响11人  王诗翔

主要用到两个重要函数,一个是.onLoad(),一个是.onAttach()。两者尽量选择前者。

.onAttach()一般用于在包启动时加载有用信息或建议。

.onAttach <- function(libname, pkgname) {
  packageStartupMessage("Welcome to my package")
}

这样用户可以通过suppressPackageStartupMessages()函数在不想显示该信息时抑制该信息。

如果想要设定自定义的选项,提取加载一些操作,使用.onLoad()

devtools设定的有用选项:

.onLoad <- function(libname, pkgname) {
# libname 包所在库路径
# pkgname 包名
  op <- options()
  op.devtools <- list(
    devtools.path = "~/R-dev",
    devtools.install.args = "",
    devtools.name = "Your name goes here",
    devtools.desc.author = "First Last <first.last@example.com> [aut, cre]",
    devtools.desc.license = "What license is it under?",
    devtools.desc.suggests = NULL,
    devtools.desc = list()
  )
  toset <- !(names(op.devtools) %in% names(op))
  if(any(toset)) options(op.devtools[toset])

  invisible()
}

这样,通过类似getOption("devtools.name")就能获取包作者及其他设定信息,避免与R全局选项冲突。

连接其他语言:

Java - rJava::.jpackage()
Rcpp - Rcpp::loadRcppModules()

.onUnload()函数用来清除任何副作用。

上一篇下一篇

猜你喜欢

热点阅读