视觉画布设计
canvas-design
基于设计原则创作静态视觉作品,用于海报与品牌图形。
write-roxygen-docs【文档与办公】Escribir documentación roxygen2 para funciones, conjuntos de datos y clases de paquetes R. Cubre todas las etiquetas estándar, referencias cruzadas, ejemplos y generación de entradas en NAMESPACE. Sigue el estilo de documentación de tidyverse. Usar al añadir documentación a nuevas funciones exportadas, documentar funciones auxiliares internas o conju…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Crear documentación roxygen2 completa para funciones, conjuntos de datos y clases de paquetes R.
R CMD check relacionadas con la documentación@family, @seealso)Colocar los comentarios roxygen directamente encima de la función:
#' Compute the weighted mean of a numeric vector
#'
#' Calculates the arithmetic mean of `x` weighted by `w`. Missing values
#' in either `x` or `w` are handled according to the `na.rm` parameter.
#'
#' @param x A numeric vector of values.
#' @param w A numeric vector of weights, same length as `x`.
#' @param na.rm Logical. Should missing values be removed? Default `FALSE`.
#'
#' @return A single numeric value representing the weighted mean.
#'
#' @examples
#' weighted_mean(1:5, rep(1, 5))
#' weighted_mean(c(1, 2, NA, 4), c(1, 1, 1, 1), na.rm = TRUE)
#'
#' @export
#' @family summary functions
#' @seealso [stats::weighted.mean()] for the base R equivalent
weighted_mean <- function(x, w, na.rm = FALSE) {
# implementation
}
Esperado: Bloque roxygen completo con título, descripción, @param para cada parámetro, @return, @examples y @export.
En caso de fallo: Si se desconoce una etiqueta, consultar ?roxygen2::rd_roclet. La omisión más frecuente es @return, que CRAN requiere en todas las funciones exportadas.
| Etiqueta | Propósito | ¿Obligatoria para exportar? |
|---|---|---|
#' Title | Primera línea, una oración | Sí |
#' Description | Párrafo tras línea en blanco | Sí |
@param | Documentación de parámetros | Sí |
@return | Descripción del valor retornado | Sí (CRAN) |
@examples | Ejemplos de uso | Muy recomendado |
@export | Añadir a NAMESPACE | Sí, para la API pública |
@family | Agrupar funciones relacionadas | Recomendado |
@seealso | Referencias cruzadas | Opcional |
@keywords internal | Marcar como interno | Para docs no exportadas |
Esperado: Se identifican todas las etiquetas obligatorias para el tipo de función. Las funciones exportadas tienen como mínimo @param, @return, @examples y @export.
En caso de fallo: Si una etiqueta es desconocida, consultar la documentación de roxygen2 para su uso y sintaxis.
Crear R/data.R:
#' Example dataset of city temperatures
#'
#' A dataset containing daily temperature readings for major cities.
#'
#' @format A data frame with 365 rows and 4 variables:
#' \describe{
#' \item{date}{Date of observation}
#' \item{city}{City name}
#' \item{temp_c}{Temperature in Celsius}
#' \item{humidity}{Relative humidity percentage}
#' }
#' @source \url{https://example.com/data}
"city_temperatures"
Esperado: R/data.R contiene bloques roxygen para cada conjunto de datos con @format describiendo la estructura y @source indicando la procedencia de los datos.
En caso de fallo: Si R CMD check advierte sobre conjuntos de datos sin documentar, asegurarse de que la cadena entre comillas (p. ej., "city_temperatures") coincide exactamente con el nombre del objeto guardado con usethis::use_data().
Crear R/packagename-package.R:
#' @keywords internal
"_PACKAGE"
## usethis namespace: start
## usethis namespace: end
NULL
Esperado: R/packagename-package.R existe con @keywords internal y el centinela "_PACKAGE". Al ejecutar devtools::document() se genera man/packagename-package.Rd.
En caso de fallo: Si R CMD check reporta que falta la página de documentación del paquete, verificar que el archivo se llama R/<packagename>-package.R y contiene la cadena "_PACKAGE".
Funciones con puntos en el nombre (métodos S3):
#' @export
#' @rdname process
process.myclass <- function(x, ...) {
# S3 method
}
Reutilizar documentación con @inheritParams:
#' @inheritParams weighted_mean
#' @param trim Fraction of observations to trim.
trimmed_mean <- function(x, w, na.rm = FALSE, trim = 0.1) {
# implementation
}
Corrección de "no visible binding" usando el pronombre .data:
#' @importFrom rlang .data
my_function <- function(df) {
dplyr::filter(df, .data$column > 5)
}
Esperado: Los casos especiales (métodos S3, parámetros heredados, pronombre .data) se documentan correctamente. @rdname agrupa los métodos S3. @inheritParams reutiliza la documentación de parámetros sin duplicación.
En caso de fallo: Si R CMD check advierte sobre "no visible binding for global variable", añadir #' @importFrom rlang .data o usar utils::globalVariables() como último recurso.
devtools::document()
Esperado: El directorio man/ se actualiza con archivos .Rd para cada objeto documentado. NAMESPACE se regenera con las exportaciones e importaciones correctas.
En caso de fallo: Revisar los errores de sintaxis de roxygen. Problemas frecuentes: corchetes sin cerrar en \describe{}, falta el prefijo #' en una línea, o nombres de etiquetas inválidos. Ejecutar devtools::document() de nuevo tras corregir.
@param, @return y @examplesdevtools::document() se ejecuta sin erroresdevtools::check() no muestra advertencias de documentación@family agrupan correctamente las funciones relacionadasdevtools::run_examples())@return: CRAN requiere que todas las funciones exportadas documenten su valor de retorno\dontrun{} con un comentario explicativo\donttest{} para ejemplos que funcionan pero tardan demasiado para CRANRoxygen: list(markdown = TRUE) en DESCRIPTIONdevtools::document(): Las páginas man se generan, no se escriben a manocreate-r-package - configuración inicial del paquete incluyendo roxygenwrite-testthat-tests - probar las funciones que se documentanwrite-vignette - documentación extensa más allá de la referencia de funcionessubmit-to-cran - requisitos de documentación para CRAN