照顾你的函数中的依赖项

时间:2010-05-27 07:54:50

标签: r dependencies

如何解决函数中包的依赖关系?我将require(package)添加到函数中,但我想知道是否有一种完成此任务的首选方法。

3 个答案:

答案 0 :(得分:4)

根据函数的帮助,require is designed for use inside other functions; it returns FALSE and gives a warning (rather than an error as library() does by default) if the package does not exist

以后......

The source code for a package that requires one or more other packages should have a call to require, preferably near the beginning of the source, and of course before any code that uses functions, classes or methods from the other package

答案 1 :(得分:4)

使用程序包的Depends:文件的DESCRIPTION字段。

这是你更好地使用软件包而不仅仅是使用source()的文件进行处理的另一个原因。

编辑Imports:中还有DESCRIPTION。但一般的观点是R 具有依赖机制,如果你使用它会更好。

答案 2 :(得分:0)

标准格式似乎是

if(!require(the_package))
{
  #Maybe try an alternative or do some cleanup here
  stop("You must install the package 'the_package'.")
}

如果您的软件包广泛使用另一个软件包,那么您应该在初始化软件包时加载该软件包,即在.First.lib函数中将其添加到软件包的Depends字段中。 。如果软件包仅由一个或两个函数使用,那么这些代码块将在这些函数的开头处进行。