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 (将#修改为@)