gpt4 book ai didi

r - 使用 .onLoad 加载依赖包

转载 作者:行者123 更新时间:2023-12-02 02:36:12 24 4
gpt4 key购买 nike

我的包需要 ggplot2 包,但我无法修复运行 R CMD 检查时得到的以下注释。

no visible global function definition for qplot
'library' or 'require' call not declared from: ggplot2

我还有一个 .onLoad 函数,

.onLoad <- function(libname, pkgname){
.libPaths("~/RLibrary")
require(ggplot2)
}

关于如何解决错误有什么建议吗?我应该在哪里放置 onLoad 函数?

谢谢

最佳答案

我认为你不应该那样做。最好让你的包依赖 ggplot2 或者导入 ggplot2 的命名空间。通过添加 Depends: ggplot2 在 DESCRIPTION 文件中执行,第二个通过在 DESCRIPTION 中添加 Imports: ggplot2 和在 NAMESPACE 中添加 import(ggplot2) (或者使用 importfrom(ggplot2,"somefunction") 更准确。

或者,您可以在 DESCRIPTION 中设置 Suggests: ggplot2 并在使用它的任何函数中放置一个 require("ggplot2"),但我不太喜欢这样.

另见:

http://cran.r-project.org/doc/manuals/R-exts.html#The-DESCRIPTION-file

编辑:更清楚一点。使用 Depends,每次加载包时都会加载包,并且它的所有功能都可供用户使用。

通过Imports,您可以使用包的功能,但当您的包未加载时,包也不会加载(功能对用户不可用)。

使用 Suggests 时,当您加载您的包时,该包不会被加载,您无法使用它的功能。您需要在某处声明 require 才能使用它们。基本上这可以用来表明您在某处使用了这个包(在一个例子左右)。

这完全取决于您希望用户如何使用依赖包以及它对您的包的重要性。例如,如果您的包是 ggplot2 的前端,Depends 是最好的,如果它进行一些分析并具有绘图功能,则 Imports 是最好的。

关于r - 使用 .onLoad 加载依赖包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5294679/

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