为什么2016年数据新闻记者应该开始使用R

封面

 


记者同行和同事们了解我对R项目(有时候近乎可笑的)热情。事实上,对我来说2015年是属于R的一年:四月,我创建了Rddj.info,一个R的学习资源合集。在过去的几个月中,它已经逐渐发展壮大。我希望我会在2016年成长得更快。

同样在2015年,我已经举办了一些讲座解释背后的原因、透明优势和可重现的数据新闻(#rddj),例如在汉堡举行的德国网络年度研讨会议。并且就在上周,我被通知在#NICAR16上谈谈这些,耶!

bild_span12
只为我们的故事用R创建的GIF

来源:http://www.srf.ch/news/infografik/stadt-und-land-sind-politisch-in-festen-haenden

 

在SRF Data——瑞士公共广播的数据新闻部门,我工作的地方——2015年我们几乎所有大点的项目都以某种形式使用R。举个例子,在选举日,我们快速在Twitter上发布了无数信息图和图表,它们大受好评。有了R,我们能够提前准备图表,只需要尽可能快地从SRF广泛的API中提取新结果。甚至可以直接在R中发布推文(我们将在2019年下一次选举时使用这一技术)。

CR74qpJU8AAFR6-.png-large-768x521
选举日发布的图表之一,显示在瑞士的26个省中党派力量的变化

最后,但并非最不重要的是,我们借助RMarkdown的帮助,通过在GitHub页面上发布大部分数据和分析制定了新的(欧洲)数据新闻标准。其他人已经开始使用我们的原则。

所以,R有什么优势?以及为什么(数据)新闻记者最终应该在2016年开始使用R?2015年(或可能已经是2014年或2013年)是前提,因此……

如果你还没有使用R,应该在2016年开始的6个理由:

>>1.R几乎擅长每一件事。当然也包括我们作为(数据)新闻记者日常遇到的任务的90%:从一个网站获取数据,转置一张数据表,合并多个表格,将JSON转换为CSV和反过来,过滤和排序数据,绘制一些探索图,为进一步制作交互数据可视化准备数据,创建GIF图像,以及你命名的。对所有这些都有独立的、免费试用的工具:考虑Excel、Google Refine、Datawrapper,Outwit Hub,ScraperWiki等等。但是R可以在一段脚本中完成一切。对每一个能想象到的任务,有成千上万个R包,并且在你试图做某件事之前,不太可能没有人做过它。R的第二个优势支持一个完整的工作流,不会遇到工具间数据转换的问题。我的意思是说,在我把JSON转换为Excel时会发生什么?我不知道,可能必须使用一个难以理解的在线转换器或者别的什么。而且在我最后设法把数据表保存为CSV之后,所有的特殊字符在web可视化中看上去都像某种图画文字。中间我可能不得不从Excel到Refins导出和重导入我的数据,再导回来重新开始,然后我可能会忘记转换某个重要的列,然后……

>>2.R是免费和开源的。并且在所有主流平台上可用。它还有一个最流行的IDE:RStudio。

>>3.R容易学习,5分钟就能上手。不是所有人会同意这一点,但是为了完成简单的分析和数据处理任务,你必须了解的唯一编程概念就是函数调用。在R中,很多函数都是向量化的,意味着它们传入向量(例如数字序列)并返回向量——这把你从运用甚至理解构建类似for循环这样的麻烦中解放出来。对我来说,最困难的事情是搞明白R使用的各种数据类型,而且到今天这仍然是个麻烦事。但是我可以说在90%的典型数据新闻任务中,简单地理解数据框和dplyr中的操作,一切都能实现。顺便说一句,每个软件都需要学习,问题是你是要花费时间了解无数工具还是仅仅一种编程语言。

>>4.R是一种语言,而不是工具。当与从前新闻专业同学或同事聊天时,这是最常听到的反对使用R的理由。事实上,这是R最大的价值,尤其是在需要方法而不仅仅是结果的情况下。这会带来下一点:

>>5.R支持透明、可重复的工作流。使用R很难撒谎。一旦你准备好发布你的脚本,而不仅仅是结果,每个人都会知道你做了什么——而且人们将会希望指出你的方法坤缺陷甚至错误。这一点显然在当代数据新闻中很缺乏:数据处理任何和分析仍然太经常由单独一个人完成,这个人坐在电脑前,打开包含三十个甚至更多工作表的Excel,基本不知道哪个单元格用哪个函数变换,彼此之间应用了哪些具体操作。首先,无论内部还是外部,没有人可以再次检查和理解究竟对数据做了什么。其次,这样工作非常容易出错。第三,如果有一个新数据集,或者原来的数数据集更新,会发生什么?即使你能找出之前做了什么,把所有的步骤再来一次是乏味的,并且更容易发生错误。R对这些问题都有答案。因为一切都写成了脚本,一切都可以被重建和——最重要的——评论。当然随之而来的是一切都能被重复。得到了新数据?只需要一个命令就能重新开始。没有什么比在电脑工作时来杯咖啡更棒的了,而这些工作别人可能需要花费数小时完成。

>>6.R有一个不断增长的社区。根据http://githut.info,R仓库平均新增fork次数最多。这些仓库中很多可能是被像是Hadley Wickham这样的人所创建,他被称为数据nerd中的巨人,把R从曾经的繁琐古怪转换为更易用和有趣。像R-Bloggers这样的平台也承载大量有用资源。当然还有Rddj.info(好吧,无耻的自我推销够了)。

因此,在2016年走出来,开始用R吧。

微信公共号