【问题标题】:Documenting external data in R package for the inst/extdata folder?在 R 包中为 inst/extdata 文件夹记录外部数据?
【发布时间】:2020-10-23 16:48:58
【问题描述】:

我正在研究 R 中的一个包,并且正在寻找一种方法来记录存储在 inst/extdata 文件夹中的外部数据的来源。我知道/data 文件夹中的数据可以按照this SO post 用roxygen 记录。

问题似乎是外部数据没有导出到包的命名空间中,因此将 roxygen 帮助文档绑定到它会带来问题。有没有办法克服这个问题并记录类似于/data 文件夹中项目的方法的外部数据?

【问题讨论】:

  • 一种典型的方法是创建一个函数来连接/下载外部数据源,并将数据记录为函数的一部分。
  • 您可以直接编写R文档文件.Rd,而不是使用roxygen,然后您可以编写任何主题/别名的文档
  • @jangorecki 有没有办法将文档连接到数据文件,这样它就可以在 R 中使用 '?' 语法?
  • 是的,你把名字写成alias in Rd

标签: r r-package rd


【解决方案1】:

这是我在 cmets 中提供的解决方案的可重现(在 linux 上)示例。

下面的代码将创建最小的包

  • 定义虚拟DESCRIPTION文件
  • 示例ext/data/data1.csv csv 数据文件
  • 示例man/data1.Rd R 文档文件

然后它将构建和安装包。

mkdir -p my.pkg
cat > my.pkg/DESCRIPTION <<EOL
Package: my.pkg
Type: Package
Title: My pkg
Version: 1.0.0
Description: Example my pkg.
License: GPL-3
EOL
mkdir -p my.pkg/inst/extdata
cat > my.pkg/inst/extdata/data1.sv <<EOL
a,b,c
1,a,2.5
2,b,5.5
EOL
mkdir my.pkg/man
cat > my.pkg/man/data1.Rd <<EOL
\name{data1}
\alias{data1}
\alias{data5}
\title{
my data
}
\description{
desc of data.
}
EOL
R CMD build my.pkg
R CMD INSTALL my.pkg_1.0.0.tar.gz

现在可以找到手册了

Rscript -e 'library(my.pkg); ?data1'
Rscript -e 'library(my.pkg); ?data5'

如您所见,我们可以使用alias 中定义的任何名称在Rd 文件中引用 extdata 的文档。

【讨论】:

  • 谢谢,这行得通,而且包装上的 R CMD CHECK 也很好。我想可能还有一种方法可以使用 roxygen2 从 .R 构建此文件,但可能没有必要。干杯
猜你喜欢
  • 2012-11-07
  • 1970-01-01
  • 2014-03-02
  • 2019-03-29
  • 1970-01-01
  • 2017-08-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多