Matt Dowle 演讲节选(一)

2018 年 2 月 8 日 数萃大数据 大猫

M

 att Dowle 与 data.table

 

Matt:“老子在给世界上最大的金融机构打工,你竟然说 BUG 修复要等6个月?!” 


S-PLUS 客服:“为什么你不试试 R 呢?”

说着一口伦敦音的 Matt Dowle 个子不高,方方正正的脸,第一眼看上去有点略显紧张的神经质,是那种在英剧中典型的面孔。虽然不像 Hadley Wickham (请大家猛戳大猫上期的《Hadley Wickham 采访节选》)那样多产(Hadley目前已经在CRAN上发布了40多个包了),但是 Matt 凭着自己的 data.table 包成为了 R 圈最有影响力的开源包作者之一。


(Matt 演讲照片,是不是有种英剧里出来的赶脚?)

data.table 是大猫认为最优秀的数据处理包,不管从语法还是性能上大猫认为都要比 dplyr 优秀。截至2016年12月30日,data.table 是 StackOverflow上有关 R 的第三大 tag,下面一共4912个帖子,而 dplyr 为4063。data.table 也是 github 中第八大受关注的 R 开源项目。此外,data.table是目前 RStudio CRAN 镜像中下载最多包。要知道 Hadley 可是 RStudio 的首席科学家,能在“敌方大本营”取得这样的认可实属不易。在实战中,data.table 获得了 Kaggle 排名第一的 Gilberto 的青睐,他的原话很直接—— data.table is COOL!!!


于本视频

本视频来自 YouTube,是 Matt Dowle 在 useR! 2014年洛杉矶会议上的演讲。在这段21分33秒的演讲中,Matt 回顾了自己在伦敦大投行的工作经历(雷曼兄弟以及所罗门兄弟)、自己与 R 的偶遇以及开发 data.table 的动机。演讲全程笑声不断,充分体现了腐国人一本正经说笑话的能力╮(╯▽╰)╭


访节选:初见 S-PLUS

1996年我本科毕业,拿到了数学和计算机的学位,开始在伦敦的雷曼兄弟工作(大投行啊!)当时我掌握的技能并不多:VB/EXCEL + Sybase SQL + Windows + Unix。1999年,我跳槽到伦敦的所罗门兄弟(也是当时最大的投行之一),在所罗门兄弟的第一天,我遇到了 S Poertry (R 的某个祖先)的作者 Patrick Burns——这个男人就是以后所有故事的起点。(别开脑洞!)


以下是我(Matt)和 Patrick (简称 Pat)的对话:


Pat:嗨我亲爱的Matt,我们这儿都在用 S-PLUS。


Matt:S-PLUS 是啥?


PatS-PLUS 可牛逼了!我现在就给你演示一下!


于是 Pat 当场输入了以下代码:

> DF <- data.frame(

    A = letters[1:3],

    B = c(1, 2, 3))


> DF

   A B

1 a 1

2 b 3

3 c 5


Pat:我刚才输入了两列,每一列的长度都相同,但是可以是不同的数据类型!


Matt:所以说 data.frame 就像是 SQL 里面的 datatable 一样咯?


Pat:Yes!


Matt:棒极了。所以说,你不需要像在 SQL 里先用 CREATE TABLE 语句建立一个表然后再用 INSERT 语句插入数据咯?


Pat:没错,现在你可以一步搞定。


Matt:Show me more!


于是 Pat 又输入了以下代码:

> DF[2:3, ]

   A B

2 b 3

3 c 5


Matt:WOW! 我不需要像在 SQL 里必须新建一列 row number 就可以完成对表格的提取了?


Pat:说的没错。行数已经存储在内存中了,这样一来时间序列分析就特别方便。


Matt:嗯……因吹斯听。所以我现在可以这样做咯?


Matt 说着输入了以下代码:

DF[2:3, sum(B)]  # 3+5=8


Pat:啊亲爱的朋友,你不能这样做。


Matt:Why?


Pat:你必须要这样做

sum(DF[2:3, "B"])


Matt:OK,但为什么我刚才这样就不行呢?


Pat:因为不行。


Matt:为什么不行?Come on。


Pat:因为它就是不行!╮(╯▽╰)╭


Matt:那如果按照我刚才输入的代码,最终结果是什么呢?


Pat:什么也不是。


Matt 后来经过了多次尝试,返回的永远都是错误:

object "B" not found


Pat:我早和你说了,那样做不行,放弃挣扎吧年轻人。


Matt:我们能让 S-PLUS 改吗?(S-PLUS 当时是商业软件)


Pat:祝你好运。


访节选:初见 R (三年后)

有一天 S-PLUS 闪退了。我很确定这不是我代码的原因,而是 S-PLUS 的问题。


客服:你确定不是你自己 XJB 操作?


Matt:当然不是。来,我把代码给你,你自个儿运行一遍。


客服:嗯……你是对的。我们会修复的,谢谢反馈!


Matt:太棒了,什么时候?


客服: 下个版本出来我们第一时间修复。


Matt:呃……下个版本是什么时候?


客服:六个月后。


Matt:你们就不能推出一个快速补丁吗?


客服:不行,因为就你一个人出问题。


Matt:WTF?老子是所罗门的,属于花旗集团,老子在给世界上最大的金融机构打工!


客服:你说的没错,但出问题的还是只有你一个,Matt。


Matt:好吧。那你们能把代码发给我吗?我来修复它——我不要报酬,我只想让完成我的工作。


客服:很抱歉,我们不能这样做。律师说 No。


Matt:那你有什么别的建议吗?


客服:你说过 R 吗?


Matt:啥是 R ?


后来我下载了 R,在几乎没有任何改动的情况下把 S-PLUS 的代码粘贴了过去。代码的主要任务是生成许多随机资产组合,因此它包含一个很长的 for 循环。神奇的是,原来需要一个小时才完成的任务,R用一分钟就完成了。


我当时惊讶极了,仔细核对了一遍结果,发现是正确的。我后来才知道,原来早在12年前(这是2014年的演讲), R 已经大大提高了 for 循环的速度,并且把所有的数据都保存在内存中,而不是放在硬盘上。


更重要的是,R 在运行这段程序的时候不再闪退了。其实哪怕 R 出了问题,我也能修复它,因为我有了源代码!实在不行,我也能雇别人修复它。要知道,我是在花旗集团打工,花旗集团永远不缺牛逼的程序员。


总而言之,从那时开始我就不再用 S-PLUS 了。我不用再傻乎乎地等六个月,我也不用再在电话里试图说服别人要帮我推出快速补丁,我独立了!更重要的是,我有了那么多第三方开源包。


也是在那时,三年前的那个想法再次冒了出来:我能够让下面的代码在 R 中运行吗?


sum(DF[2:3, "B"])


(未完待续)


期预告

下期内容看大猫的论文进展速度 Orz……


欢迎大家关注微信公众号:数萃大数据

登录查看更多
0

相关内容

【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【经典书】统计学习导论,434页pdf,斯坦福大学
专知会员服务
234+阅读 · 2020年4月29日
【2020新书】数据科学:十大Python项目,247页pdf
专知会员服务
213+阅读 · 2020年2月21日
【UAI 2019 Tutorials】深度学习数学(Mathematics of Deep Learning)
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
152+阅读 · 2019年10月12日
我在知识星球这一年
码农翻身
10+阅读 · 2019年2月28日
冬日里的一首歌 | 清华快闪女指挥王明媚讲述背后的故事
清华大学研究生教育
59+阅读 · 2019年1月9日
实战 | 用Python做图像处理(二)
七月在线实验室
17+阅读 · 2018年5月25日
[机器学习] 用KNN识别MNIST手写字符实战
机器学习和数学
4+阅读 · 2018年5月13日
Python数据科学超强阵容书单
大数据技术
4+阅读 · 2018年4月4日
为什么你应该学 Python ?
计算机与网络安全
4+阅读 · 2018年3月24日
谈谈过拟合
数萃大数据
5+阅读 · 2018年2月24日
【人工智能】人工智能在深度学习领域的前世今生
产业智能官
5+阅读 · 2017年11月24日
Mesh R-CNN
Arxiv
4+阅读 · 2019年6月6日
Arxiv
3+阅读 · 2018年1月31日
Arxiv
4+阅读 · 2017年11月14日
VIP会员
相关资讯
我在知识星球这一年
码农翻身
10+阅读 · 2019年2月28日
冬日里的一首歌 | 清华快闪女指挥王明媚讲述背后的故事
清华大学研究生教育
59+阅读 · 2019年1月9日
实战 | 用Python做图像处理(二)
七月在线实验室
17+阅读 · 2018年5月25日
[机器学习] 用KNN识别MNIST手写字符实战
机器学习和数学
4+阅读 · 2018年5月13日
Python数据科学超强阵容书单
大数据技术
4+阅读 · 2018年4月4日
为什么你应该学 Python ?
计算机与网络安全
4+阅读 · 2018年3月24日
谈谈过拟合
数萃大数据
5+阅读 · 2018年2月24日
【人工智能】人工智能在深度学习领域的前世今生
产业智能官
5+阅读 · 2017年11月24日
Top
微信扫码咨询专知VIP会员