使用roxygen2标签@inheritParams时,.Rd文件中的参数说明顺序

use*_*707 6 r roxygen2

假设我正在编写一个包含两个函数的小R包,除了一个之外,它们具有相同的参数.这是一个例子:

fct1 <- function(r, K){...}
fct2 <- function(r, p, K){...}
Run Code Online (Sandbox Code Playgroud)

在我的第一个函数的roxygen2文档中,我使用以下标记:

#' @param r description of argument r
#' @param K description of argument K
Run Code Online (Sandbox Code Playgroud)

对于第二个函数,我使用以下标记:

#' @param p description of argument p
#' @inheritParams fct1
Run Code Online (Sandbox Code Playgroud)

在使用roxygenize处理我的代码之后,函数fct2的.Rd文件按以下顺序显示参数:p,r,K.我希望它们的顺序与使用部分中的顺序相同,即:r, p,K.如何在不手动更改.Rd文件的情况下获取此订单?

我坚持使用@inheritParams来避免复制和粘贴.

谢谢!

小智 2

我也有同样的问题。现在我使用一些小技巧来避免错误的参数顺序。

使用代码(例如在单独的 .R 文件中):

#' Function arguments
#'
#' @keywords integral
#'
#' @name fargs
#'
#' @param r ..
#' @param p ..
#' @param K ..
#' 
#' 
NULL
Run Code Online (Sandbox Code Playgroud)

并使用

#' @inheritParams fargs
Run Code Online (Sandbox Code Playgroud)

对于这两个功能。

在本例中,这很容易,但在更复杂的示例中,您可以使用此代码的许多块(每种类型的参数都有单独的块)。也许这不是那么简单的方法,但你不会在任何地方重复相同的代码。我将该块存储在单独的 args.R 文件中,因此每个继承参数都位于一个文件中。

另一种方法是使用模板,但这种方法不灵活,您必须为每个块创建单独的 .R 文件。所以我建议你使用类似的代码块。