繁体   English   中英

我应该如何引用导入包中的函数?

[英]How should I reference functions in imported packages?

创建R包时,至少有两种方法可用于引入导入包中的函数。

要么,

  1. 每次调用它时,使用双冒号运算符明确命名函数, package::function

  2. importFrom(package, function)直接添加到NAMESPACE文件中,或通过#' @importFrom package function roxygen标记添加。

每种方法有哪些优缺点?

每种语法实现的技术差异是否存在?

支持使用package::function

它完全清楚了功能的来源。

支持使用@importFrom package function

它涉及较少的打字,特别是当您的包使用多次功能时。

由于它涉及查找包和调用:: function,因此package::function的运行时性能损失很小。 请参阅https://stackoverflow.com/a/7283511/134830

总的来说,判决是什么?

这两种方法都可以完成这项工作,并且无论是哪种方式都不是压倒性的,所以不要为此而失眠。 只需选择一种方法并坚持下去。

在我的工作地点采用的政策是,对于一些常用的包,应使用@importFrom roxygen标签。 例如,开发人员应该知道ddply来自plyr ,或者起始str_函数来自stringr 在这种情况下,函数的显式父母对于知道并不那么有用。 对于这个核心列表之外的函数,(或者如果有任何歧义) ::应该用来清楚它来自哪里。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM