微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

R 包开发:使用非语法名称记录和导出函数

如何解决R 包开发:使用非语法名称记录和导出函数

我正在编写一个包(称为 pac),其中我有一个具有非语法名称(称为 +f)的函数。我无法正确记录和导出此函数

这是一个可重现的例子:

library(devtools)
setwd("~/yourpath")
create("pac")

将以下函数定义及其文档保存在 pac/R/+f.R

#' Add two objects
#' 
#' @name `+f`
#' 
#' @param x an object
#' @param y an object
#' @return A sum
#' @export
`+f`<- function(x,y) {x + y}

然后运行

document()
load_all()
`+f`(2,2)

产生输出

> document()
Updating pac documentation
Loading pac
Writing NAMESPACE
Writing tick-plus-f-tick.Rd
> load_all()
Loading pac
Warning message:
In setup_ns_exports(path,export_all,export_imports) :
  Objects listed as exports,but not present in namespace: +f
> `+f`(2,2)
Error in `+f`(2,2) : Could not find function "+f"

如您所见,函数 `+f` 未正确导出,即使 NAMESPACE 文件确实包含以下行:

 export(`+f`)

另一方面,由于文档文件 pac/man/tick-plus-f-tick.Rd 存在,我可以通过调用 ?"`+f`"显示它。

如何在包中定义和记录具有非语法名称函数 上面的示例中发生了什么?为什么在加载 pac函数不可用,即使 NAMESPACE 文件包含导出语句?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。