【问题标题】:Adding Dataset in R Package在 R 包中添加数据集
【发布时间】:2021-12-10 09:25:13
【问题描述】:

我想知道在我自己的 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

【问题讨论】:

  • 如果你的包代码在github或者类似的地方,那么我们可以检查它是否设置正确。否则,您必须在data-call 之前加载您的包。试试这个:data("Rhone", package = YOURPACKAGAENAMEHERE).
  • @Mossa 仍然存在问题“数据错误(“Rhone”,包 = DEEVD):找不到对象“DEEVD””
  • 对不起,这个data("Rhone", package = "DEEVD")
  • same, data("Rhone", package = "DEEVD") 警告信息:In data("Rhone", package = "DEEVD") : data set ‘Rhone’ not found
  • 好的,所以给我们发一个回购链接,这样我就可以调查了。否则,我无能为力

标签: r package dataset


【解决方案1】:

好吧,我终于可以回答了。

问题在于您的 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)

运行/获取此脚本。现在,这会将名为 Rhone.rda 的文件保存到 data/ 文件夹中。

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

如果您更改了Rhone 的定义,那么您必须重新运行/重新获取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

【讨论】:

  • 请看我的编辑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-02
  • 2018-06-14
  • 2020-10-10
  • 1970-01-01
  • 2016-11-21
  • 1970-01-01
  • 2021-10-25
相关资源
最近更新 更多