2017-10-19 78 views
2

我正在写一个使用外部数据的函数,如下: 首先,它检查数据是否在data /文件夹中,如果它不是,它会创建data /文件夹,然后从github下载文件; 如果数据已经在data/文件夹中,它将读取它并执行计算。R'data'不是来自'namespace:my_package'的导出对象

的问题是,当我运行:

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) 
} 
+1

何时以及如何准确地做到这一点的代码运行?你是否试图从你的包中导出一个名为'data'的变量?请尝试制作一个最小的[可重现的示例](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example),以便更清楚地知道您的代码看起来像什么样因为你没有分享任何。 – MrFlick

+0

完成!只包括它。 – Igor

回答

0

它不能在任何情况下是相同的,但我已经通过R/文件夹中删除的文件data.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"