如何在不将数据集添加到Collate字段的情况下记录数据集?

10

我正在使用roxygen2为正在开发的软件包文档化数据集。我知道可以使用roxygen文档化数据集,但是Shane的答案最终提出了一种hack方法,虽然我宁愿避免使用这种方法。因此,我的问题是:

我应该在哪里放置数据的roxygen文档?

我目前有一个数据文档文件(anorexia.sub.roxygen),用于存放厌食症数据集在我的/R文件夹下

My Package Directory

因为据我所知,那是roxygen2唯一会查找的地方:

#' Family Treatment Weight change data for young female anorexia patients.
#' 

#' 
#' The MASS package includes the dataset \code{anorexia}, containing pre and
#' post treatment weights for young female anorexia patients.  This is a subset
#' of those data, containing only those patients who received Family Treatment.
#' 
#' 
#' @name anorexia.sub
#' @docType data
#' @format A dataframe with 17 observations on the following 2 variables, no
#'   NAs.
#'
#' \describe{
#' 
#' \item{list("Prewt")}{Pretreatment weight of subject, in pounds.}
#' 
#' \item{list("Postwt")}{Postreatment weight of subject, in pounds.}
#' 
#' }
#' @references Venables, W. N. and Ripley, B. D. (2002) Modern Applied
#'   Statistics with S. Fourth edition. Springer.
#' @source Hand, D. J., Daly, F., McConway, K., Lunn, D. and Ostrowski, E. eds
#'   (1993) A Handbook of Small Data Sets. Chapman & Hall, Data set 285 (p.
#'   229)
#' @keywords datasets
NULL

roxygen2可以很好地生成文档。但是,它将anorexia.sub.roxygen.R添加到我的DESCRIPTION文件中的Collate字段中:

Collate:
    'granova.R'
    'theme-defaults.R'
    'granovagg.1w.R'
    'granovagg.contr.R'
    'granovagg.ds.R'
    'help.R'
    'anorexia.sub.roxygen.R'

我的问题是:如何从roxygen块自动生成数据文档,

  1. 不将数据文档文件添加到Collate调用中,
  2. 避免使用需要hack的解决方案
1个回答

16

为了良好的实践,你应该在包级别函数级别记录你的包,因此我总是在R文件夹中保留一个名为packagename-package.R的文件(例如,在您的情况下为granovaGG-package.R),其中我保留包文档以及数据文档。

因此,你的granovaGG-package.R文件可能如下所示:

#' One sentence summary of your package.
#' 
#' More detail
#' ...
#' @name granovaGG-package
#' @aliases granovaGG
#' @docType package
#' @title One sentence summary of your package.
#' @author \email{your.name@@email.com}
#' @keywords package
#' @seealso \code{\link{...}}
NULL
#' Your dataset documentation goes here.
#' 
#' Exactly as in your example.
#' @docType data
#' etc.
#' ...
NULL

我没想到在同一个文件中可以有多个roxygen块!那应该完美地解决了。谢谢,Andrie! - briandk
我很高兴它有所帮助。在原始答案中,我应该说你当然可以将数据文档添加到任何其他文件中! - Andrie
我能假设那不是字面的NULL,而只是一个空白行吗?(我还不是roxygen 的编写者) - William Doane
好的,答案是这取决于情况。Roxygen要求文件中至少有一行有效的R代码(不是Roxygen代码)。NULL可以满足此要求,但如果文件中有其他R代码,则不需要使用NULL。 - Andrie
1
对于那些关注的人,我有一个轶事:当我在我的packagename-package.R文件中记录两个数据集时,我不得不在每个块之间包含一个NULL,以便正确生成.Rd文件。 - Matt Parker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接