![](/img/trans.png)
[英]Roxygen2 - “argument is of length zero” error when documenting reference class
[英]Roxygen2 - how to @export reference class generator?
例如,假設我有以下名為Test
包,我想導出A
類:
# In /R/Test.R:
#' @docType package
#' @import methods
#' @exportClass A
A <- setRefClass("A", methods = list(foo = identity))
但是,在構建和加載后,使用A
的生成器時出現以下錯誤:
> library(Test)
> A()$foo(1)
Error: could not find function "A"
我已經檢查了我的NAMESPACE
文件的內容很好:
exportClasses(A)
import(methods)
出了什么問題? 為什么不導出我的類生成器?
如果添加@export A
那么也將導出生成器函數A
,例如
#' A class description
#'
#' @import methods
#' @export A
#' @exportClass A
A = setRefClass('A',
fields=list(name='character', n='numeric'),
methods=list(
hello=function() {
"A greeting"
return(paste0('Hello, ', name))
}
)
)
重要提示:不要忘記在導出指令中明確提及A
,或者它與功能不同似乎不起作用。
另外,作為類被導出,你仍然可以使用通過類new()
例如,
> a = new('A', name='Josh', n=12345)
> a$hello()
[1] "Hello, Josh"
但是添加導出很容易。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.