1

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

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

4

1 回答 1

1

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

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

  • 定义虚拟DESCRIPTION文件
  • 示例ext/data/data1.csvcsv 数据文件
  • 示例man/data1.RdR 文档文件

然后它将构建和安装包。

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 的文档。

于 2020-11-04T09:48:42.157 回答