R包那些事儿

谢益辉
2013/05/18 @ 北京,第6届中国R语言会议

中国R语言会议,2008-2013

  • 第1届R会议,2008,中国人民大学
    • John Maindonald
  • useR! 2008,多特蒙德
  • animation,2007

我的第1个R包:animation

想法

  • 出于“好玩”的目的
    • 第一个动画作品:布朗运动(演示)
  • 动画原理非常简单(演示)
    • 原始人看电影
    • 北京地铁广告

纯码农没有出路

  • 统计学
    • 豌豆机(演示)
  • John Chambers软件奖

界面(旧)

界面(新)

自动一切可自动化的配置

  • saveGIF()与ImageMagick的安装目录
    • Windows下找软件的痛苦
  • readRegistry()

文档优先级:参数说明 < 例子/演示

  • demo('fire', package = 'animation')

文档优先级:R文档 < 网站

  • 出国申请
    • 善易者不卜
  • 死文档与活网站
    • 富媒体
    • 与用户的交互
    • 访问数据

如果你还不会做网站

听报告的这半小时花在学习HTML上更划算

动画网站

  • 第一版:Dreamweaver,纯HTML,手码
  • 第二版:Dokuwiki,简单语法,手工维护
  • 第三版:Jekyll/Markdown,knitr动态生成,自动化
    • 打江山容易,守江山难
  • http://animation.yihui.org

好玩是第一生产力

  • 演示
    • 那些年一起蜇我们的蜜蜂
    • Game of Life

第2-8个R包

  • formatR
  • iBUGS
  • Rd2roxygen
  • R2SWF
  • fun
  • MSG
  • knitr

那些小需求

  • 阅读他人代码的痛苦(格式)-> formatR
  • 助教批作业的苦恼(重复运行代码太困难)-> knitr(演示)

animation包的“中年危机”

  • 实在不想维护,因为写文档太麻烦
    • 痛恨伪LaTeX
    • 文档和代码分开,需要翻来覆去死去活来
  • 通向roxygen2之路:Rd2roxygen
    • #' documentation
    • 腰不酸了,腿不痛了,写代码也有力了

扎实帝C vs 酷炫帝JavaScript

  • R2SWF:R图形转化为Flash动画
    • 一大波C代码即将来袭
    • 搭档小轩哥
  • animation::saveHTML()
  • 段王爷的工作

命名

  • 史上最弱的名字:R
  • 毫无想象力:animation
  • highlight的痛苦
  • knitr的由来
  • google-able原则
    • lubridate

关于推销

  • 除非你是萌主,否则
    • 相信群众的眼睛
    • 装作若无其事的样子暗推销

社交化

  • 版本控制:论文20130501.doc的故事
  • SVN vs GIT
  • GitHub Pull Requests:拿代码来说话
  • 代码评论与讨论

谢谢