gpt4 book ai didi

r - 如何在 R 包加载时干净地定义一组变量并在卸载时清除它们?

转载 作者:行者123 更新时间:2023-12-04 15:07:55 28 4
gpt4 key购买 nike

我希望在加载包时定义一组颜色,并在包分离时清除。

我想出的似乎有效的东西显示在下面的玩具示例中,它依赖于深度赋值(我知道它是 evil )

.onLoad <- function(libname, pkgname) {

}

.registerColors <- function(){
C.1 <<- c("#FF0000FF", "#80FF00FF", "#00FFFFFF", "#8000FFFF")
C.2 <<- c("#00AAFFFF", "#0000FFFF", "#AA00FFFF", "#FF00AAFF")
}

.onUnload <- function(libpath){
}
.onAttach <- function(libname, pkgname) {
.registerColors()
packageStartupMessage("Welcome to XYZ")
}

.onDetach <- function(libname, pkgname) {
rm(C.1, C.2, pos = 1)
packageStartupMessage("Buh-bye")
}

在这种情况下, plot(seq(1:4, col = C.1) 有效。有没有更好或更优雅或潜在破坏性更小的方法来实现这一点?

最佳答案

你真的不需要去那么麻烦。只需定义一个函数来检查包是否已加载,并返回适当的颜色。

chooseCols <- function()
{
if("this_package" %in% search())
C.1
else # use default colours
}

plot(1:4, col=chooseCols())

关于r - 如何在 R 包加载时干净地定义一组变量并在卸载时清除它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44056429/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com