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