R:我如何让我的包裹使用另一个包裹?

R:我如何让我的包裹使用另一个包裹?,r,package,R,Package,这是一个非常简单的问题。 我正在扩展某人的包。它当前使用包A、B,它们列在描述文件中 如果我需要包C中的函数-向依赖项添加包-我是否只需在描述文件中添加包,这就是所需的全部内容?进入哪个部分-依赖还是导入?还有其他步骤要做吗?一旦我的代码需要使用包C函数,我是否需要使用前缀C::functionInC() 将C添加到导入:当使用C函数时,请使用双分号前缀 更长的上下文: 下面的链接提供了以下建议 R函数 如果您只使用另一个包中的几个函数,我的建议是在描述文件的Imports:字段中记录包名,并

这是一个非常简单的问题。 我正在扩展某人的包。它当前使用包A、B,它们列在描述文件中


如果我需要包C中的函数-向依赖项添加包-我是否只需在描述文件中添加包,这就是所需的全部内容?进入哪个部分-依赖还是导入?还有其他步骤要做吗?一旦我的代码需要使用包C函数,我是否需要使用前缀C::functionInC() 将C添加到导入:当使用C函数时,请使用双分号前缀

更长的上下文:

下面的链接提供了以下建议

R函数

如果您只使用另一个包中的几个函数,我的建议是在描述文件的Imports:字段中记录包名,并使用::显式调用函数,例如pkg::fun()

如果重复使用函数,可以通过使用@importFrom pgk fun导入函数来避免::。这也有一点性能优势,因为::增加了大约5µs的函数评估时间


或者,如果您重复使用另一个包中的许多函数,则可以使用@import-package导入所有函数。这是最不推荐的解决方案,因为它使您的代码更难阅读(您不知道函数来自何处),并且如果@import多个包,则会增加函数名称冲突的可能性。

通常的参考:看起来不鼓励依赖于导入,浏览第一部分。我在Imports中使用了它,并且只有在将它放入Dependes中之后它才起作用。使用Dependes而不是Imports使它“起作用”的事实可能会产生误导。在说明文件的“导入”部分中列出它只意味着它将被安装,而不是附加。导入可能仍然是最好的方式,但我认为您也需要在名称空间文件中指定导入。这是一个基本/基本的问题,您可以简单地讨论如何实际生成包。如果导入包中的函数是管道(
%%>%%
)符号,该怎么办?您是否仍然以某种方式为其添加前缀,或者认为不添加前缀可以吗?@stevec请尝试使用此软件包。有一个特定的函数来导入管道。usethis::use_pipe()