前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《高效R语言编程》4-高效工作流

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

作者头像
用户1075469
发布2021-05-20 10:35:38
6930
发布2021-05-20 10:35:38
举报
文章被收录于专栏:科技记者科技记者

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

高效R编程

《高效R语言编程》笔记

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

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

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

类型

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

项目规划类型

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

具体步骤

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

项目规划与管理

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

分而治之

模块化,项目分割。

使你的工作流更敏捷

SMART标准

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

通过R可视化项目计划

项目进度绘图包:

  • plan(进度图、甘特图)
  • plotrix(甘特图)
代码语言:javascript
复制
install.packages("plotrix")
library(plotrix)
example(gantt.chart)
  • DiagrammeR 较新的包,提供简单流程图的R接口,如mermaid和GraphViz。
代码语言:javascript
复制
 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生成动态文档

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

代码语言:javascript
复制
1+1

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

代码语言:javascript
复制
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包让测试更加容易,确保进程不中断。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-05-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科技记者 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 高效工作流的5条高级技巧
    • 类型
    • 项目规划类型
      • 具体步骤
        • 项目规划与管理
          • 分而治之
            • 使你的工作流更敏捷
              • 通过R可视化项目计划
                • 包的选择
                  • 查找R包
                  • 如何选择R包
              • 发布
                • 通过R Markdown生成动态文档
                  • R包
                  相关产品与服务
                  项目管理
                  CODING 项目管理(CODING Project Management,CODING-PM)工具包含迭代管理、需求管理、任务管理、缺陷管理、文件/wiki 等功能,适用于研发团队进行项目管理或敏捷开发实践。结合敏捷研发理念,帮助您对产品进行迭代规划,让每个迭代中的需求、任务、缺陷无障碍沟通流转, 让项目开发过程风险可控,达到可持续性快速迭代。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档