У меня есть один пакет "testing" с объектом данных "test_data", сохраненным в папке данных под именем файла "test_data.RData".
testing содержит одну функцию hello (), которая использует этот объект данных
#' hello
#'
#' @return Prints hello "your_name"
#' @export
#'
#' @examples
#' hello()
hello <- function(your_name = "") {
print(paste("test_data has", nrow(test_data), "rows"))
print(sprintf("Hello %s!", your_name))
}
следующий код работает нормально:
require(testing)
testing::hello()
[1] "test_data has 32 rows"
[1] "Hello !"
, но это не удается:
testing::hello()
Error in nrow(test_data) : object 'test_data' not found
На самом деле я не использую его напрямую, но в другом пакете тестирования, который импортирует этотfunction:
#' Title
#'
#' @export
#' @importFrom testing hello
hello2 <- function(){
hello()
}
У меня есть тестирование в разделе Imports DESCRIPTION, и это не удается.
require(testingtop)
testingtop::hello2()
Error in nrow(test_data) : object 'test_data' not found
Если я помещаю его в Зависит, это работает, если я загружаю пакет с библиотекой ()в противном случае все равно происходит сбой:
> library(testingtop)
Loading required package: testing
> testingtop::hello2()
[1] "test_data has 32 rows"
[1] "Hello !"
Restarting R session...
> testingtop::hello2()
Error in nrow(test_data) : object 'test_data' not found
, если бы это была функция вместо объекта данных. Импортирование было бы хорошо, почему это отличается от объекта данных, и мне нужно загрузить импортированный пакет?Я что-то пропустил?И связано ли это с LazyData и LazyLoad?
Возможно, дубликат этот вопрос