资料:
- 小抄
- 图书:R 包开发 - http://r-pkgs.had.co.nz/
R 包开发最好和 Git(GitHub) 结合使用。
内容:
- 开发工具
- RStudio
- usethis (devtools may be helpful) - usethis 是目前的开发核心包,里面有特别多的工具函数,自己开发时多看一看、试一试效果。
- 开发
- DESCRIPTION
- NAMESPACE
- R/
- inst/ - optional
- data/ -
usethis::use_data()/usethis::use_data_raw()
- man/
gitignore
.Rbuildignore
devtools::load_all()
devtools::check()
- 处理 undefined global variables
- 工具函数与非标准计算
usethis::use_pipe()
usethis::use_tidy_eval()
理解非标准计算阅读 https://shixiangwang.github.io/home/cn/post/2019-07-08-dplyr-programming/{{}}
使用方法见 https://shixiangwang.github.io/home/cn/post/2019-08-04-rlang-operator-curly-curly/
- 包文档与测试
- roxygen2 - 使用 RMarkdown 语法
- testthat
- https://github.com/mikldk/roxytest
- 包使用说明/手册/网站
usethis::use_gpl3_license()
usethis::use_readme_rmd()
/usethis::use_readme_md()
usethis::use_badge()
usethis::use_lifecycle()
- ...
- https://github.com/GuangchuangYu/badger
- https://github.com/GuangchuangYu/hexSticker
- NEWS -
usethis::use_news_md()
- CITATION -
usethis::use_citation()
- Vignette -
usethis::use_vignette()
- Pkgdown -
usethis::use_pkgdown()
andpkgdown::build_site()
- 自动集成
- GitHub action
- travis -
usethis::use_travis()
- appveyor -
usethis::use_appveyor()
- 代码覆盖度 -
usethis::use_coverage()
- 提交CRAN/Bioconductor
- 先测试好再提交
devtools::check()
rhub::check_for_cran()
这个包提供的测试功能比较丰富
devtools::submit_cran()
- Bioconductor没提交过,官网有说明,照着做。
- 先测试好再提交
总结一下要点:
- 掌握 R 包结构
- 掌握 usethis 、devtools包
- 编写简约有效的函数代码
- 处理好
devtools::check()
显示的 NOTE/WARNING/ERROR - 逐步学习写示例、测试、说明书甚至网站
- 实战:提出想法、构建 R 包、不断优化!