R:在自写包中使用magrittr管道运算符

我想在我自己编写的一个程序包中使用%>%该magrittr程序包中介绍的管道运算符来链接dplyr数据转换。在文件中magrittr列出。加载我自己的包并测试使用管道运算符的功能后,我收到以下错误消息:ImportDESCRIPTION


函数名错误(参数,:找不到函数“%>%”


更改%>%为magrittr::%>%函数源代码也无济于事,因为无法再构建软件包。


繁星点点滴滴
浏览 832回答 3
3回答

忽然笑

如果您已在中magrittr列出,它应该可以正常工作Depends。但是,不建议这样做。相反,您留magrittr在其中Imports,并将以下行添加到NAMESPACE:importFrom(magrittr,"%>%")我建议阅读写作R扩展。您的问题在1.1.3和1.5.1段中讨论。

阿波罗的战车

另一种解决方案-使用roxygen包装。它作为devtools软件包的一部分实现。一旦devtools被安装,调用devtools::document()将更新NAMESPACE为您服务。它还使用文档自动生成.Rd文件,非常方便。您要做的就是以格式添加特殊注释#' @import packagename到文件中,以从该包中导入所有功能或#' @importFrom packagename functionname导入一个功能。您可以在文件中随意添加这些注释,因此可以在每个文件的顶部或每个需要外部函数的函数中包含一组注释。然后运行devtools::document(),它解析您的代码以查找那些注释,然后NAMESPACE为您创建一个合适的文件。简单。

胡子哥哥

现在,有一种更简单的方法可以在包装中支撑管道。精美的包装usethis具有功能use_pipe()。您只需运行一次该函数即可处理所有内容。这是use_pipe()在usethis文档中描述功能的方式:是否需要进行设置才能在包中内部使用magrittr的管道并为包用户重新导出:将magrittr添加到DESCRIPTION中的“导入”使用必要的制氧模板创建R / utils-pipe.R
打开App,查看更多内容
随时随地看视频慕课网APP