create-r-package
关于
This Claude Skill scaffolds a complete R package structure from scratch, following usethis conventions and tidyverse style. It generates essential files like DESCRIPTION, NAMESPACE, and setup for testing (testthat), documentation (roxygen2), dependency management (renv), and CI/CD (GitHub Actions). Use it when starting a new package, converting loose scripts into a structured package, or creating a skeleton for collaborative development.
快速安装
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/create-r-package在 Claude Code 中复制并粘贴此命令以安装该技能
技能文档
建 R 包
搭全配之 R 包,以新具與最佳之法。
用時
- 由無而建 R 包
- 將散 R 本轉為包
- 為協作開發搭包骨
入
- 必要:包名(小寫,唯
.為特字) - 必要:包志之一行述
- 可選:許可類(默 MIT)
- 可選:作者信息(名、電郵、ORCID)
- 可選:是否起 renv(默為)
法
第一步:建包骨
usethis::create_package("packagename")
setwd("packagename")
得: 目錄建,含 DESCRIPTION、NAMESPACE、R/、man/ 子目錄。
敗則: 確 usethis 已裝(install.packages("usethis"))。察目錄未存。
第二步:設 DESCRIPTION
編 DESCRIPTION 含精元資料:
Package: packagename
Title: What the Package Does (Title Case)
Version: 0.1.0
Authors@R:
person("First", "Last", , "[email protected]", role = c("aut", "cre"),
comment = c(ORCID = "0000-0000-0000-0000"))
Description: One paragraph describing what the package does. Must be more
than one sentence. Avoid starting with "This package".
License: MIT + file LICENSE
Encoding: UTF-8
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.3.2
URL: https://github.com/username/packagename
BugReports: https://github.com/username/packagename/issues
得: 合法 DESCRIPTION 過 R CMD check 無元資料警。
敗則: 若 R CMD check 警 DESCRIPTION 域,驗 Title 為題式大小寫、Description 逾一句、Authors@R 用合法 person() 語法。
第三步:設基建
usethis::use_mit_license()
usethis::use_readme_md()
usethis::use_news_md()
usethis::use_testthat(edition = 3)
usethis::use_git()
usethis::use_github_action("check-standard")
得: LICENSE、README.md、NEWS.md、tests/ 目錄、.git/ 已起、.github/workflows/ 已建。
敗則: 若某 usethis::use_*() 敗,裝缺依而重運。若 .git/ 已存,use_git() 略起。
第四步:建開發之配
建 .Rprofile:
if (file.exists("renv/activate.R")) {
source("renv/activate.R")
}
if (requireNamespace("mcptools", quietly = TRUE)) {
mcptools::mcp_session()
}
建 .Renviron.example:
RSTUDIO_PANDOC="C:/Program Files/RStudio/resources/app/bin/quarto/bin/tools"
# GITHUB_PAT=your_github_token_here
建 .Rbuildignore 項:
^\.Rprofile$
^\.Renviron$
^\.Renviron\.example$
^renv$
^renv\.lock$
^CLAUDE\.md$
^\.github$
^.*\.Rproj$
得: .Rprofile、.Renviron.example、.Rbuildignore 已建。開發文件排於建包外。
敗則: 若 .Rprofile 致起誤,察語法。確 requireNamespace() 守防可選包缺致敗。
第五步:起 renv
renv::init()
得: renv/ 目錄與 renv.lock 建。項目本地庫活。
敗則: 以 install.packages("renv") 裝之。若 renv 起時卡,察網或 options(timeout = 600)。
第六步:建包文件
建 R/packagename-package.R:
#' @keywords internal
"_PACKAGE"
## usethis namespace: start
## usethis namespace: end
NULL
得: R/packagename-package.R 存含 "_PACKAGE" 標。devtools::document() 生包級助。
敗則: 確文件名合 R/<packagename>-package.R。"_PACKAGE" 字串宜獨立表達,非函內。
第七步:建 CLAUDE.md
於項根建 CLAUDE.md,含項專 AI 助手之指。
得: CLAUDE.md 存於項根,含項專編慣、建命、構註。
敗則: 若疑含何,始以包名、一行述、常開發命(devtools::check()、devtools::test()),及任何非顯慣。
驗
-
devtools::check()返 0 誤 0 警 - 包構合期佈
-
.Rprofile加載無訛 -
renv::status()無問 - Git 庫已起含宜
.gitignore - GitHub Actions 工作流文件存
陷
- 包名衝:建名前以
available::available("packagename")察 CRAN - 缺 .Rbuildignore 項:開發文件(
.Rprofile、.Renviron、renv/)須排於建包外 - 忘 Encoding:DESCRIPTION 皆含
Encoding: UTF-8 - RoxygenNote 不合:DESCRIPTION 之版須合所裝 roxygen2
例
# Minimal creation
usethis::create_package("myanalysis")
# Full setup in one session
usethis::create_package("myanalysis")
usethis::use_mit_license()
usethis::use_testthat(edition = 3)
usethis::use_readme_md()
usethis::use_git()
usethis::use_github_action("check-standard")
renv::init()
參
write-roxygen-docs— 文所建之函write-testthat-tests— 為包加試setup-github-actions-ci— 詳 CI/CD 配manage-renv-dependencies— 管包依write-claude-md— 建有效 AI 助手指
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是理想选择。
