write-roxygen-docs
关于
This Claude Skill generates roxygen2 documentation for R package components including functions, datasets, and classes. It follows tidyverse style, handles standard tags and cross-references, and creates proper NAMESPACE entries. Use it when documenting new exports, internal helpers, S3/S4/R6 methods, or fixing R CMD check documentation issues.
快速安装
Claude Code
推荐npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/write-roxygen-docs在 Claude Code 中复制并粘贴此命令以安装该技能
技能文档
書 Roxygen 文
立 R 包函、數、類之全 roxygen2 文。
用
- 為新出函加文→用
- 錄內輔函→用
- 錄包數→用
- 錄 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 警「no visible binding for global variable」→加 #' @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{}包附註釋以何 - 慢例:CRAN 過長之有效例用
\donttest{} - roxygen 中 markdown:DESCRIPTION 中啟
Roxygen: list(markdown = TRUE) - 忘行
devtools::document():man 頁為生、非手書
參
create-r-package- 包設始含 roxygen 配write-testthat-tests- 試所錄函write-vignette- 函參之外長文submit-to-cran- CRAN 之文要
GitHub 仓库
相关推荐技能
content-collections
元Content Collections 是一个 TypeScript 优先的构建工具,可将本地 Markdown/MDX 文件转换为类型安全的数据集合。它专为构建博客、文档站和内容密集型 Vite+React 应用而设计,提供基于 Zod 的自动模式验证。该工具涵盖从 Vite 插件配置、MDX 编译到生产环境部署的完整工作流。
polymarket
元这个Claude Skill为开发者提供完整的Polymarket预测市场开发支持,涵盖API调用、交易执行和市场数据分析。关键特性包括实时WebSocket数据流,可监控实时交易、订单和市场动态。开发者可用它构建预测市场应用、实施交易策略并集成实时市场预测功能。
creating-opencode-plugins
元该Skill帮助开发者创建OpenCode插件,用于接入命令、文件、LSP等25+种事件。它提供了插件结构、事件API规范和JavaScript/TypeScript实现模式,适合需要拦截操作、扩展功能或自定义事件处理的场景。开发者可通过它快速构建响应式模块来增强OpenCode AI助手的能力。
sglang
元SGLang是一个专为LLM设计的高性能推理框架,特别适用于需要结构化输出的场景。它通过RadixAttention前缀缓存技术,在处理JSON、正则表达式、工具调用等具有重复前缀的复杂工作流时,能实现极速生成。如果你正在构建智能体或多轮对话系统,并追求远超vLLM的推理性能,SGLang是理想选择。
