首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >「Workshop」第六期:R 包开发

「Workshop」第六期:R 包开发

作者头像
王诗翔呀
发布2020-07-03 16:46:57
8120
发布2020-07-03 16:46:57
举报
文章被收录于专栏:优雅R优雅R优雅R

这里汇总的信息和视频解读推荐每个想要进阶和学习 R 包开发的读者看一看,是我两年开发经验的一个总结。R 包的开发目前是前所未有的简单,但大部分 R 用户不了解,无从下手,希望这篇文章可以为大家减少一些拦路虎(下方有二维码可以直达视频)。

资料:

  • 小抄[1]
  • 图书: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_badge()
    • usethis::use_lifecycle()
    • ...
    • https://github.com/GuangchuangYu/badger
    • https://github.com/GuangchuangYu/hexSticker
    • usethis::use_gpl3_license()
    • usethis::use_readme_rmd()/usethis::use_readme_md()
    • NEWS - usethis::use_news_md()
    • CITATION - usethis::use_citation()
    • Vignette - usethis::use_vignette()
    • Pkgdown - usethis::use_pkgdown() and pkgdown::build_site()
  • 自动集成
    • rlib/actions - https://github.com/r-lib/actions
    • 简单参考 - https://github.com/ShixiangWang/sigminer/blob/master/.github/workflows/r-release-check.yml
    • 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 包、不断优化!

参考资料

[1]小抄: package-development.pdf

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 优雅R 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档