如何在R软件包的手册中包含Authors @ R?

时间:2019-01-10 16:34:45

标签: r package manual

我的R包中包含以下描述文件

Package: blah
Title: What the Package Does (one line, title case)
Version: 0.0.0.9000
Authors@R: person("Jon", "Snow", email = "jon.snow@jonsnow.ac.uk", role = c("aut", "cre"))
Description: What the package does (one paragraph).
Depends: R (>= 3.5.1)
License: What license is it under?
Encoding: UTF-8
LazyData: true
RoxygenNote: 6.1.0.9000

我已经记录了我的代码,并希望编写一份随附的手册。在上一篇文章中,人们提到使用命令 R CMD Rd2pdf <work directory>,我设法制作了手册。

问题在于,在我的手册中,R主题之前的内容没有显示作者,而是显示了其他所有内容。我已经安装了诸如devtoolsknitrroxygen2testthat之类的软件包。任何建议将不胜感激。

2 个答案:

答案 0 :(得分:1)

如果要包括多个作者,则必须将所有人员都包裹在c()中。

例如参见sf的DESCRIPTION,它看起来像这样:

Authors@R: 
  c(person(given = "Edzer",
           family = "Pebesma",
           role = c("aut", "cre"),
           email = "edzer.pebesma@uni-muenster.de",
           comment = c(ORCID = "0000-0001-8049-7069")),
    person(given = "Jeroen",
           family = "Ooms",
           role = "ctb",
           comment = c(ORCID = "0000-0002-4035-0289")),
    person(given = "Kirill",
           family = "Müller",
           role = "ctb"))

如果只有一位作者,您可以简单地写:

Author: Lax Chan

答案 1 :(得分:1)

在构建源包时,Authors@R字段被重新格式化为Author。它不会出现在您的源目录中,因此从该目录构建手册将不会包括该手册。

您需要做的是从源代码中构建tar.gz文件,然后从中创建手册。

由于您似乎正在使用命令行方法,因此可以通过

R CMD build <workdir>

会产生类似workdir.version.tar.gz的内容。不幸的是,Rd2pdf无法直接读取此文件,因此您还需要两个步骤。移至干净目录,然后运行

tar zxvf workdir.version.tar.gz
R CMD Rd2pdf workdir

从内置的description文件中生成手册。

(如果您将tarball解压缩到原始源的顶部,我认为这不会造成灾难,但是如果您更改DESCRIPTION文件,可能会在以后引起混乱。)