R-package开发:使用非语法名称记录和导出函数
我正在编写一个包(称为R-package开发:使用非语法名称记录和导出函数,r,roxygen2,R,Roxygen2,我正在编写一个包(称为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 #'
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()
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`
未正确导出,即使名称空间
-文件有以下行:
export(`+f`)
另一方面,由于存在文档文件pac/man/tick-plus-f-tick.Rd
,因此我可以通过调用?“`+f`”
来显示它
如何在包中定义并记录具有非语法名称的函数?上述示例中发生了什么?为什么加载
pac
时函数不可用,即使名称空间
-文件包含一个导出语句?我不太明白您为什么要将函数命名为该函数。您只是想为+
添加一个新方法吗?编写关于名称空间文件的R扩展名1.5.1:“注意,变量名可能会被引用,保留字和非标准名称,例如[可能像@export这样简单”+f"
?@Roland感谢您的建议。这就是我尝试使用@name
标记的原因。我在@name
之后写的任何内容都会显示在名称空间-文件中的导出语句中。我现在也尝试了使用@export
标记的变体,但迄今为止运气不佳。您是否尝试过e> @export“+f”
?AFAIU,@name
是一个Rd标记,而不是名称空间标记。因为您的问题是导出,所以Rd标记没有帮助。
export(`+f`)