问题描述
我正在编写一个包(称为 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 (将#修改为@)