Как получить доступ к пользовательской среде в примерах пакетов в R
У меня есть пакет R, в котором я определяю пользовательскую среду при загрузке пакета, используя функцию.onLoad(). Это работает нормально, но когда я документирую функцию с помощью rxoygen2 и выполняю devtools::check(), если есть какая-либо ссылка на функцию, которая использует эту среду, check() выдает ошибку, потому что не может найти среду.
Например, пакет с одним файлом R:
.onLoad <- function(libname, pkgname){
set_my_env()
}
#' Sets my environment
set_my_env <- function(){
message("Setting my environment")
.my_env <<- new.env(parent = emptyenv())
.my_env$variable <- "My variable"
}
#' my_fn function
#' @examples my_fn()
my_fn <- function(){
get("variable", envir = .my_env)
}
когда я вызываю devtools:: check () для пакета, я получаю:
* checking examples ... ERROR
Running examples in ‘mypackage-Ex.R’ failed
The error most likely occurred in:
> base::assign(".ptime", proc.time(), pos = "CheckExEnv")
> ### Name: my_fn
> ### Title: my_fn function
> ### Aliases: my_fn
>
> ### ** Examples
>
> my_fn()
Error in get("variable", envir = .my_env) : object '.my_env' not found
Calls: my_fn -> get
Execution halted
Если я удалю строку примеров из документации roxygen2, пакет будет работать нормально.
Мой пакет опирается на эту среду, и я не хочу просто оборачивать все мои примеры в \dontrun{}. Как я могу получить примеры, чтобы увидеть эту среду? Точка перед именем среды здесь не имеет значения.