如何定义引用另一个包中的S4类的包示例

问题描述 投票:0回答:1

我正在构建一个扩展了另一个包crmPack功能的包。 crmPack使用S4类。我正在使用roxygen记录我的新包装。在新程序包上运行devtools::check()时出现错误:

> checking examples ... ERROR
  Running examples in ‘crmreporter-Ex.R’ failed
  The error most likely occurred in:

  > base::assign(".ptime", proc.time(), pos = "CheckExEnv")
  > ### Name: summariseIncrementsRule
  > ### Title: Create a Tibble Describing an Increments Rule
  > ### Aliases: summariseIncrementsRule
  > 
  > ### ** Examples
  > 
  > if (requireNamespace("crmPack")) {
  +   inc <- IncrementsRelative(intervals=c(0, 20), increments=c(1, 0.33))
  +   summariseIncrementsRule("inc")
  + }
  Error in IncrementsRelative(intervals = c(0, 20), increments = c(1, 0.33)) : 
    could not find function "IncrementsRelative"
  Execution halted

这是roxygen注释的相关部分以及所讨论的泛型的定义:

#' @examples
#' if (requireNamespace("crmPack")) {
#'   inc <- IncrementsRelative(intervals=c(0, 20), increments=c(1, 0.33))
#'   summariseIncrementsRule(inc)
#' }
#' @import crmPack
#' @importFrom methods .valueClassTest
#' @export
setGeneric("summariseIncrementsRule", valueClass = "tbl", function(object) {
  standardGeneric("summariseIncrementsRule")
})

我也尝试过

#' @importFrom crmPack IncrementsRelative

在泛型的roxygen注释中,具有相同的结果。

[crmPack出现在我的DESCRIPTION文件的Imports:部分中,而我的NAMSEPACE文件包括import(crmPack)

我应该如何记录我的通用名称,以便其示例正确运行? [从控制台运行时会这样做。]

r package s4 roxygen2 roxygen
1个回答
0
投票

根据@Waldi的问题,我尝试了:

#' @examples
#' if (requireNamespace("crmPack")) {
#'   inc <- crmPack::IncrementsRelative(intervals=c(0, 20), increments=c(1, 0.33))
#'   summariseIncrementsRule(inc)
#' }

并且此命令没有错误。我还能够从#' @import crmPack注释中删除roxygen,但是删除#' @importFrom methods .valueClassTest导致devtools::check()发出警告。

© www.soinside.com 2019 - 2024. All rights reserved.