2017-10-19 36 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"