为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

繁星点点滴滴 2019-12-21 12:51:13
我想在我自己编写的一个程序包中使用%>%该magrittr程序包中介绍的管道运算符来链接dplyr数据转换。在文件中magrittr列出。加载我自己的包并测试使用管道运算符的功能后,我收到以下错误消息:ImportDESCRIPTION函数名错误(参数,:找不到函数“%>%”更改%>%为magrittr::%>%函数源代码也无济于事,因为无法再构建软件包。
查看完整描述

3 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

如果您已在中magrittr列出,它应该可以正常工作Depends。但是,不建议这样做。相反,您留magrittr在其中Imports,并将以下行添加到NAMESPACE:


importFrom(magrittr,"%>%")

我建议阅读写作R扩展。您的问题在1.1.3和1.5.1段中讨论。


查看完整回答
反对 回复 2019-12-21
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

另一种解决方案-使用roxygen包装。它作为devtools软件包的一部分实现。一旦devtools被安装,调用devtools::document()将更新NAMESPACE为您服务。它还使用文档自动生成.Rd文件,非常方便。

您要做的就是以格式添加特殊注释#' @import packagename到文件中,以从该包中导入所有功能或#' @importFrom packagename functionname导入一个功能。您可以在文件中随意添加这些注释,因此可以在每个文件的顶部或每个需要外部函数的函数中包含一组注释。

然后运行devtools::document(),它解析您的代码以查找那些注释,然后NAMESPACE为您创建一个合适的文件。简单。


查看完整回答
反对 回复 2019-12-21
?
胡子哥哥

TA贡献1825条经验 获得超6个赞

现在,有一种更简单的方法可以在包装中支撑管道。精美的包装usethis具有功能use_pipe()。您只需运行一次该函数即可处理所有内容。这是use_pipe()在usethis文档中描述功能的方式:


是否需要进行设置才能在包中内部使用magrittr的管道并为包用户重新导出:


将magrittr添加到DESCRIPTION中的“导入”


使用必要的制氧模板创建R / utils-pipe.R


查看完整回答
反对 回复 2019-12-21
  • 3 回答
  • 0 关注
  • 765 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信