主要用到两个重要函数,一个是.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()
函数用来清除任何副作用。
网友评论