通过library()/ Description文件在R包中使用依赖项
我正在写一个R包,它有几个其他包的依赖,其中一些在CRAN中可用,而其他包是自制的.
根据帮助,库(“my_package”)将在我之前安装它时加载包的名称空间,即install.package(“my_package”). 然而,一旦我安装了软件包,我就可以通过my_package :: my_function()使用已安装但未加载的软件包的所有功能,所以如果我的软件包有依赖项,那么除了将它们添加到DESCRIPTION文件中之外: Imports: dplyr,my_package2,ggvis, 在包文件夹的根目录中. 解决方法
不,用户不必加载my_package中的函数使用的包.
您在Imports下列出了一个包的事实:在DESCRIPTION文件中意味着在安装my_package期间,R将检查您的系统上是否有此软件包可用.这意味着my_package中的函数可以使用:: notation来使用这些包中的函数,如您所建议的那样. 使用:: notation是从其他包引用函数的推荐方法,但也有其他选项: >为了在my_package中使用dplyr可以访问所有函数而不使用::,可以将import(dplyr)添加到NAMESPACE文件中.如果您使用包中的许多功能,这很方便. 依赖关系的一般概念是R是my_package将具有它依赖于加载的包的“它自己的版本”.因此,您可以随时确保使用dplyr软件包中的函数select(),如您所愿.例外是使用Depends:绕过这个系统.在这种情况下,my_package将在全局环境中查找函数,如果有人在全局环境中定义了一些名为select()的函数,my_package将使用此函数,您将获得意外结果. 例1: 说明文件: Imports: dpylr my_package中的一些函数: my_fun <- function(...) { dplyr::mutate(...) %>% dplyr::select(1:3) } 例2: 说明文件: Imports: dpylr NAMESPACE文件: import(dplyr) my_package中的一些函数: my_fun <- function(...) { mutate(...) %>% select(1:3) } 例3: 说明文件: Imports: dpylr NAMESPACE文件: importFrom(select,dplyr) my_package中的一些函数: my_fun <- function(...) { dpylr::mutate(...) %>% select(1:3) } 您可以在Web上找到有关如何处理R包中的依赖关系的更详细说明.例如,以下内容非常有用: > On the DESCRIPTION file (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |