簡體   English   中英

Roxygen2 - 如何@export引用類生成器?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM