R包依赖关系

12

我正在尝试构建一个R包,但似乎存在一些与包依赖项有关的问题。如果我在R中运行代码,我需要安装"rgdal"和"rgeos"这两个包,因此为了将其制作成包,我:

  • 在NAMESPACE文件中添加了 "import(rgdal, rgeos)" 一行
  • 在DESCRIPTION文件中添加了 "Depends: rgeos, rgdal" 一行

当我在构建后运行 R CMD check时,出现了一个错误:

* checking package dependencies ... ERROR
Benötigte, aber nicht verfügbare Pakete:
  'rgeos' 'rgdal'

See the information on DESCRIPTION files in the chapter 'Creating R
packages' of the 'Writing R Extensions' manual.

错误信息中的德语部分为:"Benötigte, aber nicht verfügbare Pakete:",翻译为"需要但不可用的软件包"。

我已经阅读了提到的手册,并了解了使用导入、建议或增强选项的方法,但我相当确定应该使用depends选项,因为我的代码函数中使用了这两个软件包的外部函数。

我做错了什么?

1个回答

10

R认为你的系统上没有这些软件包。

当然你知道你装了这些软件包,那么问题出在哪儿呢?

很有可能是你把这些软件包安装到了另一个目录,而R CMD check并没有搜索到这个目录。解决这个问题的方法之一详见《R Internals》手册中第七章“工具”(被《Writing R Extensions》所引用),可以使用文件~/.R/checkEnviron设置环境变量,在R CMD check期间使用。

例如,我有:

# edd Apr 2003  Allow local install in /usr/local, also add a directory for
#               Debian packaged CRAN packages, and finally the default dir 
# edd Jul 2007  Now use R_LIBS_SITE, not R_LIBS
R_LIBS_SITE=${R_LIBS_SITE-'/usr/local/lib/R/site-library:'
                          '/usr/lib/R/site-library:/usr/lib/R/library'}

我刚刚打断了一行长代码(中间没有两个撇号)。


$R_HOME/etc/Rcmd_environ 中指定是否也可以起作用? - Joshua Ulrich
很有可能,至少就位置而言是这样的。但我已经习惯了创建目录~/.R/并将文件放在其中。Rcmd_environ文件的文档在哪里? - Dirk Eddelbuettel
我不确定它是否有记录。我在我的XP机器上注意到了一段时间。甚至不确定它是否存在于*nix安装中。 - Joshua Ulrich
1
谢谢。它有效了。我没有编辑路径,而是将安装的软件包复制到“R CMD check”实际检查的文件夹中。 - tobias b.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接