gpt4 book ai didi

R 包-@example 函数如果未导出,则无法测试

转载 作者:行者123 更新时间:2023-12-04 09:39:05 25 4
gpt4 key购买 nike

我正在使用 RStudio 开发自定义 R 包,并使用 roxygen2 进行记录。

请考虑这个功能:

#' Get "test"
#'
#' @return String
#' @export
#'
#' @examples getTest()
getTest <- function() {
return("test")
}

如果我运行 R CMD check用上面写的函数文档,一切正常, check成功通过。

现在,如果我删除 @export (因为我不希望这个函数从包外部可见),我收到以下错误:
* checking examples ... ERROR
Running examples in 'MyPackageName-Ex.R' failed
The error most likely occurred in:

> ### Name: getTest
> ### Title: Get "test"
> ### Aliases: getTest
>
> ### ** Examples
>
> getTest()
Error: could not find function "getTest"
Execution halted

看起来像 @examples中的功能测试是从包外运行的!?

如何测试非导出函数的示例?

最佳答案

我恭敬地不同意@Roland 的评论,因为有一个与文档接近的示例有助于了解我在 6 个月后到底在想什么。使用 check() 自动检查意味着它有机会与代码保持同步。我在 R 文档中没有看到任何禁止或告诫记录非导出函数的内容。

值得庆幸的是,您可以使用三分号 ::: 调用未导出的函数。运算符(operator)。例子:

 ##' Drop specified dimension from an array
##'
##' Like drop(x) but only dropping specified dimensions.
##' There is no testing that the specified dimensions are actually singletons.
##' @param x array of at least d dimensions
##' @param d dimension(s) to drop
##' @return array x
##' @examples
##' x = array(1:4, dim=c(1, 2, 1, 2))
##' dx = MAST:::Drop(x, 1)
##' stopifnot(all(dim(dx)==c(2,1,2)))
##'
Drop <- function(x, d){
dim(x) <- dim(x)[-d]
x
}

关于R 包-@example 函数如果未导出,则无法测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34196597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com