Порядок описания аргументов в файле .Rd при использовании тега roxygen2 @inheritParams - PullRequest
6 голосов
/ 28 ноября 2011

Допустим, я пишу небольшой пакет R, включающий две функции с точно такими же аргументами, кроме одной. Вот пример:

fct1 <- function(r, K){...}
fct2 <- function(r, p, K){...}

В документации по первой функции roxygen2 я использую следующие теги:

#' @param r description of argument r
#' @param K description of argument K

Для второй функции я использую следующие теги:

#' @param p description of argument p
#' @inheritParams fct1

После обработки моего кода с помощью roxygenize .RD-файл для функции fct2 представляет аргументы в следующем порядке: p, r, K. Я бы хотел, чтобы они были в том же порядке, что и в разделе об использовании, то есть : r, p, K. Как я могу получить этот заказ, не изменяя вручную файл .Rd?

Я настаиваю на использовании @inheritParams, чтобы избежать копирования и вставки.

Спасибо!

1 Ответ

2 голосов
/ 05 декабря 2014

У меня такая же проблема.Пока я использую небольшой трюк, чтобы избежать неправильного порядка аргументов.

Используйте код (например, в отдельном файле .R):

#' Function arguments
#'
#' @keywords integral
#'
#' @name fargs
#'
#' @param r ..
#' @param p ..
#' @param K ..
#' 
#' 
NULL

и используйте

#' @inheritParams fargs

дляОбе функции.

В этом случае это было легко, но в более сложных примерах U может использовать множество блоков этого кода (отдельный блок для каждого типа аргументов).Может быть, это не так просто, но вы нигде не повторяете один и тот же код.Я храню этот блок в отдельном файле args.R, поэтому все аргументы наследования находятся в одном файле.

Другой способ - использование шаблонов, но этот метод не гибкий, и для каждого блока необходимо создать отдельный файл .R.Поэтому я советую вам использовать одинаковые блоки кода.

...