MCP HubMCP Hub
Вернуться к навыкам

write-roxygen-docs

pjt222
Обновлено 2 days ago
3 просмотров
17
2
17
Посмотреть на GitHub
Метаworddata

О программе

Этот навык генерирует документацию roxygen2 для компонентов R-пакетов, включая функции, наборы данных и классы. Он следует стилю tidyverse, обрабатывает стандартные теги, перекрёстные ссылки, примеры и записи NAMESPACE. Используйте его при документировании новых экспортируемых элементов, внутренних вспомогательных функций, методов S3/S4/R6 или для исправления проблем с документацией при проверке R CMD check.

Быстрая установка

Claude Code

Рекомендуется
Основной
npx skills add pjt222/agent-almanac -a claude-code
Команда плагинаАльтернативный
/plugin add https://github.com/pjt222/agent-almanac
Git клонированиеАльтернативный
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/write-roxygen-docs

Скопируйте и вставьте эту команду в Claude Code для установки этого навыка

Документация

書 roxygen 文

立全 roxygen2 文於 R 包之函、數、類。

用時

  • 加文於新出之函
  • 錄內助函
  • 錄包之數
  • 錄 S3/S4/R6 類與法
  • 修文相關之 R CMD check

  • 必要:欲錄之 R 函、數、或類
  • 可選:相關函以互引(@family@seealso
  • 可選:函是否宜出

第一步:書函之文

置 roxygen 注於函之上:

#' 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
}

得:全 roxygen 塊含題、述、各參之 @param@return@examples、與 @export

敗則:標不確者,察 ?roxygen2::rd_roclet。常忽 @return,CRAN 為諸出函所必。

第二步:要標參

出必乎?
#' Title首行、一句
#' Description空行後一段
@param參之文
@return返值述是(CRAN)
@examples用例強推
@export加於 NAMESPACE是,公 API
@family群相關函
@seealso互引可選
@keywords internal標為內為非出文

得:諸函類所需標皆識。出函至少含 @param@return@examples、與 @export

敗則:標陌者,查 roxygen2 之文 為用與語法。

第三步:錄數

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"

得:R/data.R 含每數之 roxygen 塊,附 @format 述結構與 @source 供數源。

敗則:R/CMD check 警未錄之數者,確引串(如 "city_temperatures")精配 usethis::use_data() 所存物名。

第四步:錄包

R/packagename-package.R

#' @keywords internal
"_PACKAGE"

## usethis namespace: start
## usethis namespace: end
NULL

得:R/packagename-package.R 存附 @keywords internal"_PACKAGE" 哨。行 devtools::document()man/packagename-package.Rd

敗則:R CMD check 報缺包文頁者,驗文名為 R/<packagename>-package.R 且含 "_PACKAGE" 串。

第五步:處特例

名含點之函(S3 法):

#' @export
#' @rdname process
process.myclass <- function(x, ...) {
  # S3 method
}

重用文@inheritParams

#' @inheritParams weighted_mean
#' @param trim Fraction of observations to trim.
trimmed_mean <- function(x, w, na.rm = FALSE, trim = 0.1) {
  # implementation
}

「無可見綁」修.data 代名:

#' @importFrom rlang .data
my_function <- function(df) {
  dplyr::filter(df, .data$column > 5)
}

得:特例(S3 法、繼參、.data 代名)正錄。@rdname 群 S3 法。@inheritParams 重用參文無重複。

敗則:R CMD check 警「無可見綁全變」者,加 #' @importFrom rlang .data 或末用 utils::globalVariables()

第六步:生其文

devtools::document()

得:man/ 域更附每錄物之 .Rd 文。NAMESPACE 重生附正出與入。

敗則:察 roxygen 語法訛。常見:\describe{} 中括未閉、行缺 #' 首、或標名無效。修後再行 devtools::document()

  • 諸出函有 @param@return@examples
  • devtools::document() 無訛行
  • devtools::check() 無文警
  • @family 標正群相關函
  • 例無訛行(試 devtools::run_examples()

  • @return:CRAN 諸出函必錄返值
  • 例需網/證\dontrun{} 包之附注釋故
  • 慢例\donttest{} 為運而 CRAN 過久之例
  • roxygen 中 markdown:DESCRIPTION 中 Roxygen: list(markdown = TRUE) 啟之
  • 忘行 devtools::document():man 頁為生,非手書

  • create-r-package - 包初設含 roxygen 設
  • write-testthat-tests - 試所錄之函
  • write-vignette - 函參外之長文
  • submit-to-cran - CRAN 之文要

GitHub репозиторий

pjt222/agent-almanac
Путь: i18n/wenyan/skills/write-roxygen-docs
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

Похожие навыки

content-collections

Мета

Этот навык предоставляет проверенную в продакшене настройку для Content Collections — TypeScript-ориентированного инструмента, который преобразует файлы Markdown/MDX в типобезопасные коллекции данных с валидацией Zod. Используйте его при создании блогов, сайтов документации или контентных приложений на Vite + React для обеспечения типобезопасности и автоматической проверки содержимого. Он охватывает всё: от настройки плагина Vite и компиляции MDX до оптимизации развертывания и валидации схем.

Просмотреть навык

polymarket

Мета

Этот навык позволяет разработчикам создавать приложения на платформе прогнозных рынков Polymarket, включая интеграцию с API для торговли и получения рыночных данных. Он также обеспечивает потоковую передачу данных в реальном времени через WebSocket для отслеживания текущих сделок и рыночной активности. Используйте его для реализации торговых стратегий или создания инструментов, обрабатывающих обновления рынка в реальном времени.

Просмотреть навык

creating-opencode-plugins

Мета

Этот навык помогает разработчикам создавать плагины OpenCode, которые подключаются к более чем 25 типам событий, таким как команды, файлы и операции LSP. Он предоставляет структуру плагина, спецификации API событий и шаблоны реализации для модулей на JavaScript/TypeScript. Используйте его, когда вам нужно перехватывать, отслеживать или расширять жизненный цикл ассистента OpenCode AI с помощью пользовательской событийно-ориентированной логики.

Просмотреть навык

sglang

Мета

SGLang — это высокопроизводительный фреймворк для обслуживания больших языковых моделей (LLM), специализирующийся на быстрой структурированной генерации JSON, regex и рабочих процессов агентов с использованием кэширования префиксов RadixAttention. Он обеспечивает значительно более высокую скорость вывода, особенно для задач с повторяющимися префиксами, что делает его идеальным для сложных структурированных результатов и многократных диалогов. Выбирайте SGLang вместо альтернатив, таких как vLLM, когда вам требуется ограниченное декодирование или вы создаете приложения с интенсивным совместным использованием префиксов.

Просмотреть навык