Igo*_*gor 8 namespaces r devtools roxygen2
我正在编写一个使用外部数据的函数,如下所示:首先,它检查数据是否在data/文件夹中,如果不在,则创建data/文件夹,然后从github下载文件;如果数据已经在data/文件夹中,它将对其进行读取并执行计算。
问题是,当我运行时:
devtools::check()
Run Code Online (Sandbox Code Playgroud)
它返回:
Error: 'data' is not an exported object from 'namespace:my_package'
Run Code Online (Sandbox Code Playgroud)
我应该手动穿上东西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)
}
Run Code Online (Sandbox Code Playgroud)
在每种情况下可能都不尽相同,但是我已经通过删除data.R文件R/夹上的文件解决了该问题。
data.R是描述包中显示的所有数据的文件。自从我的代码的上一版本以来,我就拥有它,它具有内置的数据,而不是远程的(可下载)。删除文件解决了我的问题。
data.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"
Run Code Online (Sandbox Code Playgroud)
小智 5
有 3 件事需要检查:
#' 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
Run Code Online (Sandbox Code Playgroud)
RData 文件已适当命名,以便在 data/ 文件夹中导出。
RData 文件加载了名称数据。
如果文档 (1) 是 A,则 Rdata 文件是 A.RData (2),但对象(使用 加载时load())被命名为 B - 您将准确地得到此错误。