《高效R语言编程》4-高效工作流

这是《高效R语言编程》的学习笔记,前面的笔记在这里:

我们将实践、习惯、提升生产力的系统环境定义为工作流。项目管理和计划,这里使用DiagrammeR包。

高效工作流的5条高级技巧

类型

  • 1、编码前头脑清晰,保证目标,可以用绝笔
  • 2、制定计划
  • 3、尽早选择要用的包
  • 4、记录每个阶段的工作
  • 5、尽可能使流程可复制,knitr可以帮助实现

项目规划类型

  • 数据分析
    重点是数据处理的速度。本人觉得是先实现呢
  • 创建包
    用户接口和用户文档,代码风格和审查,鲁棒性的测试也很重要
  • 报告和发布
    需要多少代码才能得到结论和会创建多少输出
  • 应用
    Shiny App或者嵌入到大型服务器中的的代码,健壮性和恰当地处理错误

具体i步骤

  • 项目规划,做好计划
  • 包选择
  • 发布

项目规划与管理

准备充分可以减少工作,减少技术债务(不完全正确的代码推迟决策),当然,一次性代码大可不必这样。
可用的工具有从简单到复杂是,Github,Zenhub(与GitHub紧密配合,唯一的浏览器插件),类似Trello的网页工具,专用项目管理软件,企业级项目管理软件。

分而治之

模块化,项目分割。

使你的工作流更敏捷

SMART标准

  • 明确(目标)
  • 可衡量(结束指标)
  • 可实现
  • 实际情况(资源)
  • 时间限制
    项目计划有多种形式,比如甘特图,问题描述等等。


通过R可视化项目计划

项目进度绘图包:

  • plan(进度图、甘特图)
  • plotrix(甘特图)
install.packages("plotrix")
library(plotrix)
example(gantt.chart)

  • DiagrammeR
    较新的包,提供简单流程图的R接口,如mermaid和GraphViz。
 library(DiagrammeR)
 mermaid("gantt
         Section Inition
         Planning        :a1,2020-05-06,10d
         Data processing :after a1, 30d"
         )

包的选择

低效、缺乏技术支持或过时的包会浪费不少时间,CRAN上有大量不好的包,易出错。使用R包可以避免重复造轮子,提高效率。

查找R包

首先是百度谷歌一下,其次,是R文档网站rdocumentation.org,也可以R命令搜索:
RSiteSearch('ggplot') #会自动用浏览器打开网页

如何选择R包

优先考虑性能、稳定性和易用性。几个推荐的判断标准:

  • 1、是否成熟,版本号1.0以上一般更稳定
  • 2、是否处于持续开发周期
  • 3、完备的文档
  • 4、是否广泛使用
    MRAN和METACRAN两个网站可以帮助包的选择,下载量也是一个衡量指标。可以用这个网址查看https://cranlogs.r-pkg.org/badges/last-month/ggplot2
    网页只有这么个简洁的信息

发布

文档化你的工作:动态报告与R包。

通过R Markdown生成动态文档

这个的优点是可以同时包括代码块和实时生成结果,示例如下:

1+1

echo=TRUE,是显示R代码;eval= TRUE,执行代码。
Ctrl+Alt+I可以方便插入代码块。
在文档第一个代码块设置如下,可以缓存第一次运行结果,减少构建时间:

knitr::opts_chunk$set(echo = TRUE)
opts_chunk$set(cache=TRUE)

R包

dummy package虚拟包,使用DESCRIPTION文件用于告知用户如何使用。创建包适合管理复杂项目,需要花费额外时间,devtools包让这个过程变得简单。当然,小型一次性项目还是不建议创建包。
R包的基本元素区别于其他R项目,下面是三条高效建议:

  • 1、DESCRIPTION 包含了包的依赖信息,需要安装的其他包,例如Imports:
  • 2、R/ 文件夹,包的所有R代码,模块化
  • 3、data/ 文件夹包含示例代码,devtools::use_data()可以自动将数据添加到你的包,只要在包加载时配合了data("data_set_name")函数。
    testthat包让测试更加容易,确保进程不中断。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,444评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,421评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,363评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,460评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,502评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,511评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,280评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,736评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,014评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,190评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,848评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,531评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,159评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,411评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,067评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,078评论 2 352

推荐阅读更多精彩内容