【问题标题】:Writing an R package: needing a package I don't explicitly call编写一个 R 包:需要一个我没有明确调用的包
【发布时间】:2015-04-30 21:41:20
【问题描述】:

我正在开发一个使用 sp 包中的 spTransform 函数的 R 包。问题是这个函数需要 rgdal 加载才能工作,否则我会收到一条错误消息:

Error in eval(expr, envir, enclos) : load package rgdal for spTransform methods

我在DESCRIPTION 文件中的Imports 语句包括以下内容:

Imports: sp,
    rgdal

但我仍然收到错误消息。 然而,如果我在使用包之前明确加载 rgdal(使用 library(rgdal)),一切正常。我猜当我的包被加载时,rgdal 没有附加,因为我的代码都没有通过:: 等明确使用它。

所以我认为我的问题是:如何让我的包附加一个我没有明确使用的包?

【问题讨论】:

  • 这已出现在 r-dev 邮件列表中。我认为您还需要在 NAMESPACE 文件中使用正确的规范。
  • 你能展示一下你的 NAMESPACE 文件是什么样子的吗?
  • 如果包没有它就无法工作并且需要使用命名空间,它可能应该包含在 Imports 中。我很犹豫说取决于但可能也是/而不是

标签: r


【解决方案1】:

正如 BondedDust 所说,您需要将所需的包导入到您的包 NAMESPACE 中。为此,请编辑文件,添加新行 import(sp, rgdal)。延伸阅读http://cran.r-project.org/doc/manuals/r-release/R-exts.html#Specifying-imports-and-exports

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-22
  • 1970-01-01
  • 1970-01-01
  • 2021-03-25
  • 1970-01-01
  • 2013-01-22
相关资源
最近更新 更多