如何为 R 包创建自定义启动消息?
How to create custom start-up messages for R packages?
例如,如果我加载 R 包“mclust”,我会看到
> library(mclust)
__ ___________ __ _____________
/ |/ / ____/ / / / / / ___/_ __/
/ /|_/ / / / / / / / /\__ \ / /
/ / / / /___/ /___/ /_/ /___/ // /
/_/ /_/\____/_____/\____//____//_/ version 5.4.7
Type 'citation("mclust")' for citing this R package in publications.
自己构建R包时,如何创建这样的自定义启动消息?
编辑:明确地说,我不问如何创建 ASCII 艺术,而是问一般情况下如何显示启动消息。
你的问题不是很清楚。你问的是如何创建显示 MCLUST 的 ASCII 艺术,或者如何显示启动消息?我会假设后者。
你添加一个功能,比如
.onAttach <- function(libname, pkgname) {
packageStartupMessage("This is version ", packageVersion(pkgname),
" of ", pkgname)
}
在您的包裹代码中的某处。按照惯例,您将把它放在一个名为 R/zzz.R
的文件中,但它可以放在 R 代码中的任何位置。
除了 .onLoad()
中的错误或警告之外,不要打印其他内容;那通常应该是沉默的。
为了补充其他出色的答案,我们可以在路径 mclust project 中找到这个确切的示例:
mclust/R/zzz.R
文件 zzz.R 包含以下内容:
# .onLoad <- function(libname, pkgname)
# {
# library.dynam("mclust", pkgname, libname)
# }
mclustStartupMessage <- function()
{
# Startup message obtained as
# > figlet -f slant MCLUST
msg <- c(paste0(
" __ ___________ __ _____________
/ |/ / ____/ / / / / / ___/_ __/
/ /|_/ / / / / / / / /\__ \ / /
/ / / / /___/ /___/ /_/ /___/ // /
/_/ /_/\____/_____/\____//____//_/ version ",
packageVersion("mclust")),
"\nType 'citation(\"mclust\")' for citing this R package in publications.")
return(msg)
}
.onAttach <- function(lib, pkg)
{
# unlock .mclust variable allowing its modification
unlockBinding(".mclust", asNamespace("mclust"))
# startup message
msg <- mclustStartupMessage()
if(!interactive())
msg[1] <- paste("Package 'mclust' version", packageVersion("mclust"))
packageStartupMessage(msg)
invisible()
}
例如,如果我加载 R 包“mclust”,我会看到
> library(mclust)
__ ___________ __ _____________
/ |/ / ____/ / / / / / ___/_ __/
/ /|_/ / / / / / / / /\__ \ / /
/ / / / /___/ /___/ /_/ /___/ // /
/_/ /_/\____/_____/\____//____//_/ version 5.4.7
Type 'citation("mclust")' for citing this R package in publications.
自己构建R包时,如何创建这样的自定义启动消息?
编辑:明确地说,我不问如何创建 ASCII 艺术,而是问一般情况下如何显示启动消息。
你的问题不是很清楚。你问的是如何创建显示 MCLUST 的 ASCII 艺术,或者如何显示启动消息?我会假设后者。
你添加一个功能,比如
.onAttach <- function(libname, pkgname) {
packageStartupMessage("This is version ", packageVersion(pkgname),
" of ", pkgname)
}
在您的包裹代码中的某处。按照惯例,您将把它放在一个名为 R/zzz.R
的文件中,但它可以放在 R 代码中的任何位置。
除了 .onLoad()
中的错误或警告之外,不要打印其他内容;那通常应该是沉默的。
为了补充其他出色的答案,我们可以在路径 mclust project 中找到这个确切的示例:
mclust/R/zzz.R
文件 zzz.R 包含以下内容:
# .onLoad <- function(libname, pkgname)
# {
# library.dynam("mclust", pkgname, libname)
# }
mclustStartupMessage <- function()
{
# Startup message obtained as
# > figlet -f slant MCLUST
msg <- c(paste0(
" __ ___________ __ _____________
/ |/ / ____/ / / / / / ___/_ __/
/ /|_/ / / / / / / / /\__ \ / /
/ / / / /___/ /___/ /_/ /___/ // /
/_/ /_/\____/_____/\____//____//_/ version ",
packageVersion("mclust")),
"\nType 'citation(\"mclust\")' for citing this R package in publications.")
return(msg)
}
.onAttach <- function(lib, pkg)
{
# unlock .mclust variable allowing its modification
unlockBinding(".mclust", asNamespace("mclust"))
# startup message
msg <- mclustStartupMessage()
if(!interactive())
msg[1] <- paste("Package 'mclust' version", packageVersion("mclust"))
packageStartupMessage(msg)
invisible()
}