【问题标题】:Correct way to handle dataset dependencies in package development?在包开发中处理数据集依赖关系的正确方法?
【发布时间】:2014-07-17 03:24:19
【问题描述】:

我正在尝试构建一个依赖于另一个包中的某些数据的包。 编写 R 扩展 表示要避免在包函数中使用 require。我可能不会使用Lahman 包中的所有表,目前正在以这种方式导入它们...

team.batting <- function(year, league, playoffs = FALSE)
{
    ...
    Batting <- Lahman::Batting
    Teams <- Lahman::Teams 

    ## calculations, subsets, etc. 
    ...
} 

这是正确的吗?如果不是,那么在包函数中调用导出数据集的正确方法是什么?最终用户是否需要安装该软件包才能使其正常工作?

另外,与安装版本相比,我不太清楚开发 版本是什么。如果有人能提供一些启示,我将不胜感激。

【问题讨论】:

  • 如果你正在使用数据集,你为什么要关心它是否是一个依赖项?它需要加载才能使用它...
  • 是的,但我已经有了。这不是一个快速下载,这就是我有点担心的原因。
  • 如果你想使用包中的数据,那么用户需要安装包。
  • 尽管如果您只需要包中包含的一些数据,您可能只需要获取这些数据集并将它们作为数据集直接包含在您的包中。如果您提供适当的引用,我相信这会很好。但是 Lahman 包并没有这么大大到让用户下载它是不合理的。
  • 由于 devtools 的更改,此评论不再适用。

标签: r dataset dependencies packages


【解决方案1】:

经过一番研究,我确定正确的方法是包含指令

import(Lahman)

在我的包的 NAMESPACE 文件中(或者可能是importFrom(Lahman, table name),具体取决于使用了多少表)。完成此操作后,可以删除 :: 调用。

team.batting <- function(year, league, playoffs = FALSE)
{
    ...
    bat <- Batting
    tms <- Teams 

    ## calculations, subsets, etc. 
    ...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-11
    • 1970-01-01
    • 2021-12-14
    • 2012-12-14
    • 2021-12-24
    • 2016-07-09
    • 2013-12-21
    相关资源
    最近更新 更多