当多个参数匹配时,如何在单个参数上使用@inheritParams?

时间:2017-12-12 21:40:09

标签: r devtools roxygen2

我想记录一个R函数,并在多个参数名称匹配时从其他函数继承单个参数文档。例如,假设我有以下两个函数。

#' Function 1.
#' 
#' Description of function 1.
#' 
#' @param x XYZ
#' @param y ZYX
#' @return Numeric
fun1 <- function(x, y) {value <- 1}

#' Function 2.
#' 
#' Description of function 2.
#' 
#' @param x ABC
#' @param y CBA
#' @return Numeric
fun2 <- function(x, y) {value <- 2}

我现在要创建第三个函数,它继承fun1的参数x和fun2的参数y。以下不起作用:

#' Function 3.
#'
#' Description of function 3.
#'
#' @inherit fun1 params x
#' @inherit fun2 params y
fun3 <- function(x, y) {value <- 3}

#' Function 3.
#'
#' Description of function 3.
#'
#' @inheritParams fun1 x
#' @inheritParams fun2 y
fun3 <- function(x, y) {value <- 3}

如果您执行以下操作,则两个参数都继承自fun1:

#' Function 3.
#'
#' Description of function 3.
#'
#' @inheritParams fun1
#' @inheritParams fun2
fun3 <- function(x, y) {value <- 3}

我不确定还有什么可以尝试,或者这是否可能?

1 个答案:

答案 0 :(得分:2)

您也可以使用roxygen2模板作为参数:

  • 创建一个名为man-roxygen的文件夹。
  • 通过在行.Rbuildignore后面附加一行将其添加到^man-roxygen
  • 在该文件夹中,您可以创建带文档摘要的R文件。 例如,假设您有一个文件x-arg.R,其中包含:
    • #' @param x My x parameter.
  • 在要使用相同文档摘要的所有功能中, 写@template x-arg而不是@param bla bla
  • 利润。

编辑:而且,如果适合您的用例,则每个模板可以有多个@param条目。

我相信这几乎适用于您想重复的任何类型的文档, 尽管某些情况下需要特殊处理。 例如,如果您想要一个带有一些文本的模板,该文本应放在特定部分的下方(例如“详细信息”), R模板文件中的代码段还必须具有相应的指令, 然后使用它,如果您还有其他特定文本,则可能需要重复该指令:

details-template.R

#' @details
#'
#' Text that should appear everywhere

要使用它

#' @details
#'
#' Some specific text.
#'
#' @template details-template