在 R 包中添加数据集

Adding Dataset in R Package

我想知道在我自己的 R 包中添加数据集的简单程序。我尝试关注 https://www.youtube.com/watch?v=Bj0gHafa4GE 但在那之后我不知道为什么数据没有出现在 R 中。因为包在 CRAN 中成功上传,名为 "DEEVD"。如果我写

> data(Rhone)
Warning message:
In data(Rhone) : data set ‘Rhone’ not found

我不知道我在哪里错过了连接,因为在 R-CMD 检查期间没有错误,数据帮助文件运行良好。 如果需要任何进一步的细节,请指导我并写在评论部分。 编辑: @Mossa 的回答非常有用,但它在 Rstudio 中可以正常工作。当我在 CRAN 中更新我的包时,出现了同样的问题。下载后可以查看DEEVD

好吧,我终于可以回答了

问题出在您的 src/Rhone.R 文件中。 在这里你重新定义 Rhone。这不是这个文件应该包含的内容。

相反,此文件 src/Rhone.R 应该包含数据集 Rhone.

的文档
#' Documentation for `Rhone` should reside here.
#'
#'
"Rhone"

现在,我是这样解决的。 首先,在 Rstudio 中将包作为项目打开。 然后(如果你还没有)通过 install.packages("usethis").

安装 {usethis}

然后运行usethis::use_data_raw("Rhone")。您可以阅读以下文档 这个函数,了解它的作用:

> usethis::use_data_raw("Rhone")
√ Setting active project to 
[REDACTED]
√ Creating 'data-raw/'
√ Adding '^data-raw$' to '.Rbuildignore'
√ Writing 'data-raw/Rhone.R'
* Modify 'data-raw/Rhone.R'
* Finish the data preparation script in 'data-raw/Rhone.R'
* Use `usethis::use_data()` to add prepared data to package

现在,转到 data-raw/Rhone.R 文件,将 `Rhone 的定义放在那里。

最后,data-raw/Rhone.R 应该是这样的:

## code to prepare `Rhone` dataset goes here

Rhone <-
  c(
    1355,
    1492,
    1692,
    1766,
    1903,
    2040,
    2177,
    2314,
    2451,
    2588,
    2725,
    2862,
    2999,
    3136,
    3273,
    3410,
    3547,
    3686,
    3822,
    3959,
    4096,
    4233,
    4370
  )
usethis::use_data(Rhone, overwrite = TRUE)

Run/source 这个脚本。这现在将名为 Rhone.rda 的文件保存到 data/-文件夹。

现在,当你构建你的包时,这个数据文件是唯一的文件 与名称 Rhone 相关联。而不是重新定义它,就像以前发生的那样。

如果你改变Rhone的定义,那么你必须re-run/re-source data-raw/Rhone.R。但只有当您更改 Rhone 时,您才需要这样做。而且你只能在 data-raw/Rhone.R 内更改 Rhone。没有其他地方可以改变 Rhone.

如果您构建并加载您的包,那么您之前使用的代码将起作用。

> library(DEEVD)
> data(Rhone)
> Rhone
 [1] 1355 1492 1692 1766 1903 2040 2177 2314 2451 2588
[11] 2725 2862 2999 3136 3273 3410 3547 3686 3822 3959
[21] 4096 4233 4370