【问题标题】:R package dev: should I make data files internal or external?R package dev:我应该在内部还是外部制作数据文件?
【发布时间】:2017-08-03 19:55:54
【问题描述】:

(再次尝试这个问题以使其更清楚。)

我正在尝试编写一个包,以便更轻松地从 Web API 访问数据,并决定是否创建查找表和查询默认内部或外部数据,如 R 包的Data chapter 中所述.

据我了解,每个都有缺点。内部数据仅用于包使用的数据,用户不可见。它使用devtools::use_data(x, mtcars, internal = TRUE) 添加到包中,这会将sysdata.rda 添加到R/ 包文件夹中。然而,尽管包“需要”数据表,但我也希望我的数据对用户可见,以便他们可以纠正错误,并且可能通过拉取请求添加额外的数据文件以扩展包的功能。此外,由于我正在处理多个文件,目前并非全部可用,因此每次发生更改时将所有文件重新捆绑到R/sysdata.rda 似乎不方便。

另一种方法是使查找表和查询默认外部数据,添加默认internal = FALSE 标志:devtools::use_data(x, mtcars),将mtcars.rda 添加到data/ 包文件夹。优点是这些数据对用户来说是清晰可见的,但缺点是我不知道如何从包函数中访问它而不会在运行devtools::check():object 'querydefaults' not found 时出错。这样做的正确方法是什么?

【问题讨论】:

  • 有像nycflights13 这样的包为用户提供延迟加载的数据。那是你想要遵循的范式吗?如果是这样,请在 github 上查看他们的包结构。您的问题并没有明确说明要求是什么。
  • 根据here的定义,该包是所有外部数据;没有访问这些数据集的内部函数。我希望能够像 nycflights 一样提供数据,但也有使用数据的功能。
  • 有什么可以阻止这种情况吗?您如何尝试在您的包中使用这些数据框?
  • 我指的是他们的名字:x <- lookuptable 它有效。问题是当我运行devtools::check() 时出现错误。我可以忽略这一点,但这不是一个好主意,因为这可能意味着我做错了什么。

标签: r packages devtools


【解决方案1】:

您可以将数据集添加为外部和内部,它解决了devtools::check() 的问题。以the RIC package 为例。

【讨论】:

    猜你喜欢
    • 2019-09-23
    • 2018-03-17
    • 1970-01-01
    • 2011-08-06
    • 2021-01-05
    • 1970-01-01
    • 2014-10-28
    • 2018-06-30
    • 1970-01-01
    相关资源
    最近更新 更多