R:如何让我的包使用另一个包?
R: How do I make my package use another package?
这个问题很简单。
我正在扩展某人的包裹。它当前使用包 A、B,它们列在 DESCRIPTION 文件中。
如果我需要包 C 中的函数 - 将包添加到依赖项 - 我是否只需将包添加到 DESCRIPTION 文件中就可以了?进入哪个部分 - Depends 或 Imports?还有更多其他步骤吗?一旦我的代码需要使用包 C 函数,我是否需要使用前缀 C::functionInC()?
简答:
将 C 添加到 Imports: 并且在使用 C 函数时,使用双分号前缀。
更长的上下文:
下面的link提供以下建议
http://r-pkgs.had.co.nz/namespace.html#imports
R 函数
如果您只使用另一个包中的几个函数,我的建议是在说明文件的 Imports: 字段中记下包名称,并使用 :: 显式调用函数,例如 pkg::fun().
如果您重复使用函数,可以通过使用@importFrom pgk fun 导入函数来避免::。这也有一个小的性能优势,因为 :: 增加了大约 5 µs 的函数计算时间。
或者,如果您重复使用另一个包中的许多函数,您可以使用@import 包导入所有这些函数。这是最不推荐的解决方案,因为它使您的代码更难阅读(您无法分辨函数的来源),并且如果您 @import 许多包,它会增加函数名称冲突的可能性。
这个问题很简单。 我正在扩展某人的包裹。它当前使用包 A、B,它们列在 DESCRIPTION 文件中。
如果我需要包 C 中的函数 - 将包添加到依赖项 - 我是否只需将包添加到 DESCRIPTION 文件中就可以了?进入哪个部分 - Depends 或 Imports?还有更多其他步骤吗?一旦我的代码需要使用包 C 函数,我是否需要使用前缀 C::functionInC()?
简答: 将 C 添加到 Imports: 并且在使用 C 函数时,使用双分号前缀。
更长的上下文:
下面的link提供以下建议 http://r-pkgs.had.co.nz/namespace.html#imports
R 函数
如果您只使用另一个包中的几个函数,我的建议是在说明文件的 Imports: 字段中记下包名称,并使用 :: 显式调用函数,例如 pkg::fun().
如果您重复使用函数,可以通过使用@importFrom pgk fun 导入函数来避免::。这也有一个小的性能优势,因为 :: 增加了大约 5 µs 的函数计算时间。
或者,如果您重复使用另一个包中的许多函数,您可以使用@import 包导入所有这些函数。这是最不推荐的解决方案,因为它使您的代码更难阅读(您无法分辨函数的来源),并且如果您 @import 许多包,它会增加函数名称冲突的可能性。