前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R记录 - 最近在学习写一个R包

R记录 - 最近在学习写一个R包

作者头像
一只羊
发布2022-08-30 17:00:25
2110
发布2022-08-30 17:00:25
举报
文章被收录于专栏:生信了生信了

最近在学习写一个R包,本文对学习过程做一个简单整理。

因为课题需要,最近需要实现一个数据可视化的功能。因为ggplot2提供了扩展接口,所以就想着基于ggplot2实现这个功能。看了一些文档之后(见文末),就开始动手实现了。

开始还比较顺利,通过ggproto创建了一些新的Geom类。在拓展一些新功能的时候发现调用另一个包的函数总是失败,我猜想可能是和environment有关。用了这么久的R却对environment一知半解,只得上网去找详细资料。一番搜索后找到一本"Advanced R",参照修改。最后尝试打包成package,有很不错的文档可以参照学习(见文末)。

一般来说,当你需要通过R实现一个功能并想要分享给别人时,R包是一个不错的选择。对于像我一样的新手来说,从简单功能(比如R包只包含几个简单的函数)开始应该是比较合适的。

我的这次学习参照了一些在线文档,回过头来才发现这些文档都是出自Hadley Wickham(以及他的合作者)之手。在此列出这些文档,以供参考。

(尤其推荐"Advanced R"这本书,里面介绍了R的设计哲学。从这本书第一节开始就让我耳目一新。比如第一节讲变量,提到R里面变量的引用采用了copy-on-modify的策略,也就是说只有当引用变量对值修改时才会进行一份拷贝。我以前一直以为是引用时就会进行拷贝)

文档列表:

与R语言(设计理念)有关的

  • "Advanced R" (2ed, free online) https://adv-r.hadley.nz/index.html

与R包开发有关的

  • "R packages" (2ed, free online) https://r-pkgs.org/index.html

与ggplot2扩展开发有关的

  • "ggplot2: elegant graphics for data analysis" (3ed, free online) https://ggplot2-book.org/index.html
  • "Extending ggplot2" (from tidyverse vignettes) https://ggplot2.tidyverse.org/articles/extending-ggplot2.html

-- “生信了”公众号 2022年6月

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

本文分享自 生信了 微信公众号,前往查看

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

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

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