我的R软件包具有一个函数( my_func ),该函数使用另一个软件包( foo )中的function( bar ),该软件包仅在Unix上可用。 因此,按照编写R扩展中建议的软件包,以这种方式编写代码:

my_func = function(){
....
  if (requireNamespace("foo", quietly = TRUE)) {
    foo::bar(..) # also tried bar(...)
  } else {
    # do something else without `bar`
  }
...
}

但是,当我运行R CMD检查时,我总是收到这样的警告消息:

未从foo中声明“ loadNamespace”或“ requireNamespace”调用

有没有办法使用平台特定的软件包而不给出此类警告? 我试图将foo包含在Description文件中,警告消失了,但是由于foo无法用于Win,因此无法将软件包安装在Windows上。

#1楼 票数:2 已采纳

我认为您会误解该评论,尽管这样做很容易,因为逻辑并不清晰且无可辩驳。

在讨论使用require(package)调用包的第一段中,他们说对于测试环境或小插图来说可以,但不能从完成的函数内部使用library(package)require(package)

这被认为是错误的形式,因为您在函数内调用的程序包会篡改用户在加载程序包时在其工作环境中设置的访问顺序。

您在上面使用的方法:

package::function()

是在不更改当前环境的情况下在功能内使用功能的方法的认可。

但是要使用该功能,您仍必须在当前计算机或当前工作环境中安装该软件包(例如virtualenv或ipython或jupytr ..是的,R在所有这些环境中都可以工作)。

您无法运行R在工作环境中无法看到的功能...因此,您必须安装但不一定要加载它才能调用它。

  ask by Luyi Tian translate from so

未解决问题?本站智能推荐:

2回复

R软件包无法使用gcc编译

我下载了bioconductor,并尝试安装成功安装的软件包(“ limma”),但是当我尝试更新bioconductor时,却不断收到与无效编译器选项有关的错误。 似乎特定于gcc,gfortran软件包安装没有问题。 这是输出: 我正在运行:Linux fedora 3.6.
1回复

无法使用Bioconductor DNACopy软件包xxx(对于R版本3.2.1)

我知道那里有一些类似的问题,尤其是这个问题: 我应该如何处理“软件包'xxx'不可用(对于R版本xyz)”警告? 坦率地说,答案对我来说有点不知所措,因为我对R设置/安装等不太熟悉。我尝试了一些解决方案,但尚未使它起作用。 我想要做的是从此处安装一些生物导体软件包: https ://w
1回复

使用软件包“ minet”的问题-找不到函数mutinformation

尝试运行Minet纸/小插图中的示例代码时,遇到了很多问题,例如 当尝试使用以“ mi”为前缀的方法时,我还收到了其他错误,例如“ unknown estimator”。 例如“ mi.empirical”。 我正在运行Windows 8.1。 任何帮助将非常感激! 编辑
1回复

R软件包“ rgl”无法安装

我在安装软件包“ rgl”时遇到问题。 我也对打印出来的g ++ DNDEBUG消息感到好奇(这些消息似乎在每次安装新软件包时都会出现)。 这是我尝试install.packages(“ rgl”)时的打印输出: 和sessionInfo(): 和.libPaths(
1回复

在 R 中安装软件包

在寻求您的帮助之前,我在 StackOverflow 上搜索了可能的解决方案。 不幸的是,它们对我不起作用。 我想在 Rstudio 中运行一个应用程序。 大多数软件包运行 R>4.0 但 BiocInstaller(我需要它,因为它是一个旧应用程序)运行 R 3.5-3.99 ..... 我
2回复

在软件包GEOquery中使用getGEO()时出错

我在R中运行以下代码: 但我收到以下错误: 谁能告诉我如何摆脱这个错误?
4回复

无法在 R 上安装软件包

当我尝试为 R 安装 Bioconductor 时遇到了一个问题。我到处寻找解决方案,但是没有任何东西对我有用。 请问,有什么建议吗? 我试过重新安装R,但没有用。 我用来安装 bioconductor 的代码是:
2回复

如何找出软件包需要哪个R版本。

我试图安装使用Bioconductor(R):3.1(3.2.1)构建的软件包 。 但是,出现以下错误: 接下来,我无法使用以下命令更新R: 如何找出软件包需要哪个R版本或lib PATH错误?