R-“数据”不是从“名称空间:my_package”导出的对象

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)

Igo*_*gor 6

在每种情况下可能都不尽相同,但是我已经通过删除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)

  • 当我尝试重命名包中包含的数据集时,我遇到了同样的问题。就我而言,我用来创建文件的 df 的名称似乎包含在 .rda 元数据中,并且 NAMESPACE 会查找该名称。我更改了 df 的名称以匹配 save 命令中的输出文件,这样就解决了。例如:保存(my_df,文件=“data/my_df.rda”)。R 不喜欢用不同的名称保存“my_df”。 (3认同)

小智 5

有 3 件事需要检查:

  1. 该文档的名称很恰当:
#' 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)
  1. RData 文件已适当命名,以便在 data/ 文件夹中导出。

  2. RData 文件加载了名称数据。

如果文档 (1) 是 A,则 Rdata 文件是 A.RData (2),但对象(使用 加载时load())被命名为 B - 您将准确地得到此错误。