如何在导入的程序包中引用函数?

里奇棉花

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

要么

  1. 每当您调用函数时,都使用双冒号运算符明确命名该函数package::function

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

每种方法的优缺点是什么?

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

里奇棉花

赞成使用的论点 package::function

它可以完全清楚地知道函数的来源。

赞成使用的论点 @importFrom package function

它涉及较少的类型输入,尤其是当程序包多次使用函数时。

由于涉及查找包和对::函数的调用package::function因此运行时性能损失较小。参见https://stackoverflow.com/a/7283511/134830

总而言之,判决是什么?

两种方法都能胜任工作,并且无论哪种方式的论点都不会让人感到不知所措,因此请不要为此而睡不着。只需选择一种方法并坚持下去即可。

在我的工作地点已采用的政策是,对于一些常用的包装,@importFrom应使用roxygen标签。例如,开发人员应该知道ddply起源于plyr或功能str_起源于stringr在这种情况下,函数的显式父项并不是那么有用。对于超出此核心列表的功能,(或是否存在歧义)::应使用它来明确说明其来源。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在R中获取函数的程序包名称?

如何在引用程序集(NuGet程序包)中的DbContext上触发Update-Database

如何导入/调用程序包的“子程序包”?

如何在Index.html中更改Bower程序包引用路径

如何在AWS中设置Lambda函数以安装某些程序包和依赖项

Rails和Webpack:如何在应用程序包中调用函数?

如何创建Java程序包以及如何在另一个程序包中导入它们?

如何在apt中查找依赖于某个程序包的程序包?

如何在dnf中启用程序包缓存?

如何在Azure Pipelines中缓存pip程序包

如何在SSIS程序包中设置变量?

如何使Nuget.org程序包中的ExcelDna函数在程序包用户的Excel会话中可见

如何在IntelliJ IDEA(Java)中导入自定义程序包?

如何在VSIX项目中摆脱程序包引用冲突

试图了解如何通过webpack导入Web程序包

如何导入官方的mongodb驱动程序包

如何从SQL Server Integration Services目录导入程序包?

Python 3.5中的程序包导入失败

如何在R中创建的导入函数中更改引用?

抑制Console.Write在引用的程序包中

从外部程序包引用本地程序包

如何在仍然引用pub.dartlang.org中的程序包的同时运行私有发布服务器?

Dotnet Core-如何在已编译的应用程序中链接程序包(dll)

如何在Android中获取系统预安装应用程序的程序包名称

如何在导入的函数中引用 setup() 变量?

如何在自己的程序包中使用Laravel程序包?

如何在Swift中设置对闭包/函数的弱引用?

如何在应用程序包 [macOS] 中的 C 中查找当前目录

如何在Swift中访问应用程序包中包含的文件?