如何将示例正确添加到写入文件的R函数

时间:2019-07-07 18:35:33

标签: r r-package

将文档写入旨在编写文件的R函数的正确方法是什么?

根据CRAN注释:

  

请确保默认情况下或您的函数中不编写函数   用户主文件空间中的examples / vignettes / tests。那是不允许的   根据CRAN政策。如果用户已指定,请仅写入/保存文件   目录。在示例/小插图/测试中,您可以写入tempdir()

示例:

下面的示例将使用tempdir()函数来生成路径

tempdir()
> "C:\\Users\\username\\AppData\\Local\\Temp\\RtmpiG8whL"

可以像这样提交包裹吗?

#' @examples
#' x <- sd(1:10)
#' my_fun(x, path = tempdir())

my_fun <- function(x, path = "", file_n = "test"){
 file_p <- file.path(path, paste0(file_n, ".csv"))
 write.csv(x, file_p)
}

无法进行测试的示例

或任何写入文件的函数应明确避免测试示例?

#' @examples
#' \donttest{ 
#' x <- sd(1:10)
#' my_fun(x, path = tempdir())
#' }

my_fun <- function(x, path = "", file_n = "test"){
 file_p <- file.path(path, paste0(file_n, ".csv"))
 write.csv(x, file_p)
}

此外,检查这种问题的最佳方法是什么?

devtools::check()中运行tempdir()之后,什么都不会创建,这是正确的吗?

1 个答案:

答案 0 :(得分:0)

由于某种原因,功能tempdir()会将文件始终写入temp目录中

作为一种解决方法,我最终在示例中使用了tempfile()。这样可以使临时文件夹保持干净...

#' @examples
#' x <- sd(1:10)
#' my_fun(x, path = tempfile())

my_fun <- function(x, path = "", file_n = "test"){
 file_p <- file.path(path, paste0(file_n, ".csv"))
 write.csv(x, file_p)
}