在 inst/extdata 文件夹的 R 包中记录外部数据?
Documenting external data in R package for the inst/extdata folder?
我正在用 R 编写一个包,正在寻找一种方法来记录存储在 inst/extdata
文件夹中的外部数据源。我知道 /data
文件夹中的数据可以根据 this SO post.
使用 roxygen 进行记录
问题似乎是外部数据没有导出到包的命名空间中,因此将 roxygen 帮助文档绑定到它会造成问题。有没有办法克服这个问题并记录外部数据,类似于 /data
文件夹中项目的方法?
这是我在评论中提供的可重现(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'
如您所见,我们可以使用 Rd
文件中 alias
中定义的任何名称来引用 extdata 文档。
我正在用 R 编写一个包,正在寻找一种方法来记录存储在 inst/extdata
文件夹中的外部数据源。我知道 /data
文件夹中的数据可以根据 this SO post.
问题似乎是外部数据没有导出到包的命名空间中,因此将 roxygen 帮助文档绑定到它会造成问题。有没有办法克服这个问题并记录外部数据,类似于 /data
文件夹中项目的方法?
这是我在评论中提供的可重现(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'
如您所见,我们可以使用 Rd
文件中 alias
中定义的任何名称来引用 extdata 文档。