2011-11-28 11 views
6

Digamos que estoy escribiendo un pequeño paquete R que incluye dos funciones con exactamente los mismos argumentos excepto uno. Aquí está un ejemplo:Orden de descripciones de argumentos en un archivo .Rd al usar la etiqueta roxygen2 @inheritParams

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

En mi documentación roxygen2 de la primera función que utilizo las siguientes etiquetas:

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

Para la segunda función, utilizo las siguientes etiquetas:

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

Después de procesar mi código con roxygenize, el archivo .Rd para la función fct2 presenta los argumentos en el siguiente orden: p, r, K. Me gustaría que estuvieran en el mismo orden que en la sección de uso, que es : r, p, K. ¿Cómo puedo obtener esta orden sin cambiar manualmente el archivo .Rd?

Insisto en usar @inheritParams para evitar copiar y pegar.

Gracias!

+1

Presenta un error en https://github.com/klutometis/roxygen/issues – hadley

+0

@hadley, ¿es posible informar un error sin una cuenta en github? Gracias – user1069707

+1

No. Pero las cuentas son gratuitas y fáciles de configurar. Lamentablemente, las cuentas son un requisito en estos días llenos de spam. – hadley

Respuesta

2

Tengo el mismo problema. Por ahora uso pequeños trucos para evitar el orden de los argumentos incorrectos.

Uso de código (por ejemplo en el archivo .R independiente):

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

y utilizar

#' @inheritParams fargs 

para ambas funciones.

En este caso fue fácil, pero en ejemplos más complicados U puede usar muchos bloques de este código (bloque separado para cada tipo de argumentos). Tal vez no sea tan simple, pero no repites el mismo código en ninguna parte. Guardo ese bloque en archivos args.R separados para que cada argumento heredado esté en un archivo.

Otra forma es usar plantillas pero este método no es flexible y para cada bloque debe crear un archivo .R por separado. Así que te aconsejo que uses bloques de código simmilary.

Cuestiones relacionadas