我正在编写一个使用外部数据的函数,如下所示:首先,它检查数据是否在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文件夹中的data.R,您只需要围绕NULL关键字修饰文档,如下所示:
#' 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}
#' }
NULL