如何预安装运行您创建的软件包所需的r软件包?

如何预安装运行您创建的软件包所需的r软件包?,r,igraph,r-package,R,Igraph,R Package,我在R中创建了一个新包,包中的功能需要预先安装包,如igraph,dplyr,才能正常运行。在DESCRIPTION文件中,我确实在Imports字段中添加了这些包。但是当我运行包时,我得到一个错误,表明所需的包尚未安装 为了检查问题出在哪里,我分别安装了预先需要的软件包并运行了我的软件包,然后它似乎工作正常 这就是我的说明文件的外观 Package: xxx Type: Package Title: xxx Version: 0.1.0 Author: xxx Maintainer: xxx

我在R中创建了一个新包,包中的功能需要预先安装包,如
igraph
dplyr
,才能正常运行。在
DESCRIPTION
文件中,我确实在
Imports
字段中添加了这些包。但是当我运行包时,我得到一个错误,表明所需的包尚未安装

为了检查问题出在哪里,我分别安装了预先需要的软件包并运行了我的软件包,然后它似乎工作正常

这就是我的
说明
文件的外观

Package: xxx
Type: Package
Title: xxx
Version: 0.1.0
Author: xxx
Maintainer: xxx
Description: xxx 
License: GPL-2
Encoding: UTF-8
LazyData: FALSE
Imports: 
    igraph,dplyr,network,gridExtra,centiserve
RoxygenNote: 6.1.1


无论如何,我是否可以只加载我的包,然后自动加载预先要求的包,而不必手动加载预先要求的包,如
igraph
dplyr

这个问题提出了与之相同的问题。我提供这个答案是为了提供比另一个问题更多的细节和官方来源

问题是您在
Imports
中列出了包,而不是
dependens
。通常这是比较可取的,但如果这样做,则必须注意在
名称空间
文件中导入所需的函数。发件人:

“Imports”字段列出了名称空间是从中导入的(在名称空间文件中指定)但不需要附加的包

因此,
Imports
中的包在加载包时不会加载,如果在
dependens
中指定了这些包,就会出现这种情况

我的建议是将这些包保存在
导入
中,然后在
命名空间
中指定必要的导入函数,或者使用以下语法在该文件中手动添加语句

importFrom(foo, f, g)
(请参阅),或通过R脚本中的标记,如

#' @importFrom foo f

“但是当我运行我的软件包时”--你是指当你尝试安装软件包时,还是当你尝试加载(已安装的)软件包时?我是指当我加载(已安装的)软件包并运行其中的功能时。。。如果您在从Source安装本地包时询问如何安装依赖项,请保留答案,它具有DUP没有的有用链接。如果你愿意,我可以愚弄哈默。@RuiBarradas听起来不错!谢谢