我正在编写一个使用外部数据的函数,如下所示:
首先,它检查数据是否在 data
上。/文件夹,如果不是,则创建 data
/文件夹,然后从 github 下载文件;
如果数据已经在 data/
文件夹,它读取它,并执行计算。
问题是,当我运行时:
devtools::check()
它返回:
Error: 'data' is not an exported object from 'namespace:my_package'
我应该手动在
NAMESPACE
上放一些东西吗? ?一个例子:
my_function <- function(x){
if(file.exists("data/data.csv")){
my_function_calculation(x = x)
} else {
print("Downloading source data...")
require(RCurl)
url_base <-
getURL("https://raw.githubusercontent.com/my_repository/data.csv")
dir.create(paste0(getwd(),"/data"))
write.table(url_base,"data/data.csv", sep = ",", quote = FALSE)
my_function_calculation(x = x)
}
}
my_function_calculation <- function(x = x){
data <- NULL
data <- suppressMessages(fread("data/data.csv"))
#Here, I use data...
return(data)
}
最佳答案
不可能在每种情况下都一样,但我已经通过删除 data.R
解决了这个问题。文件在 R/
文件夹。data.R
是一个描述包中所有数据的文件。自从我的代码的前一个版本以来,我就拥有它,其中内置了数据,而不是远程(要下载)。
删除文件解决了我的问题。
数据示例.R:
#' Name_of_the_data
#'
#' Description_of_the_Data
#'
#' @format A data frame with 10000 rows and 2 variables:
#' \describe{
#' \item{Col1}{description of Col1}
#' \item{Col2}{description of Col2}
#' }
"data_name"
关于r - “数据”不是从 'namespace:my_package' 导出的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46837428/