2015年1月28日

魔鬼辞典

贵厂的广告

人力小编来送福利咯!

听说,你想摆脱数据分析和报告过程中的重复困扰;
听说,你想了解如何轻松创建基于R的交互式网页;
嘿,巧啦!神奇教父——谢益辉应运开讲啦!!!

本周三(1月28日)16:00北京会议室,一场关于R语言的饕餮盛宴即将登场,一切就绪,只等你来!!!

听说,这位谢大咖没啥特别爱好,就是口重,嗜辣,喜欢折腾……据说,猛戳这个网址 http://yihui.name 可以看到他牛到爆的经历,重点还有帅掉渣的照片哦~

码农解码

  • 神奇:呵呵
  • 教父:显老
  • 饕餮:够讲一个小时
  • 盛宴:看起来讲了很多东西,就两样听不懂
  • 大咖:呵呵
  • 牛到爆:呵呵
  • 帅掉渣:掉渣
  • 帅哥:男的
  • 美女:女的
  • 大数据:数据
  • ……

自动化报告

CV大法

为什么加班

解决方案

  • 报告 = 代码 + 文字
  • 即:计算语言 + 自然语言

    老板叫我建一个回归模型。
    
    ```{r}
    fit <- lm(dist ~ speed, data = cars)
    b   <- coef(fit)
    plot(fit)
    ```
    
    呐,这个模型的回归系数是`r b[1]`。
  • 示例

自动化!自动化!自动化!

写文档!写文档!写文档!

knitr

  • R包一枚install.packages('knitr')
  • 文档类型
    • .Rnw (R + LaTeX)
    • .Rmd (R + Markdown)
    • 任意计算语言 + 任意自然语言
  • 编辑器
    • RStudio, LyX, …
  • 文档

资料

用法

if (!require("knitr")) install.packages("knitr")
library(knitr)
knit("your-document.Rmd")  # 编织文档

部分功能

  • 控制文本输出
  • 图片
  • 缓存
  • 其它语言

R Markdown

  • 同一份文档,不同的梦想
  • 背后是rmarkdown包

目标

你苦兮兮看了无数论文,学了无数方法,收集了数据,跑了代码,做了分析,自动化报告只是希望你的临门一脚变得更简单。

交互式应用

Shiny

创建应用

  • 用户界面

    library(shiny)
    fluidPage(
      textInput('x1', label = '姓名'),
      textOutput('x2')
    )
  • 服务逻辑

    function(input, output) {
      output$x2 = renderText({
        val = input$x1
        if (val == '') '' else paste0('你好,', val)
      })
    }

原理

  • R与JavaScript之间的通信
  • 响应式编程(Reactive Programming)

不仅仅可用控件交互

产品

RStudio大力支持开源

  • RStudio集成开发环境
    • 桌面版
    • 服务器版
  • Shiny
  • Shiny服务器
  • 若干免费开源R包
    • ggplot2 / ggvis / dplyr / knitr / rmarkdown 等等

商业版本

  • RStudio专业版
    • 桌面版
    • 服务器版
  • Shiny服务器商业版

联系方式