将Python和R整合进一个数据分析流程

编译:丁一黄念丁雪

校对:席雄芬姚佳灵

程序验证:郭姝妤

◆◆◆

序言

在Python中调用R或在R中调用Python,为什么是“和”而不是“或”?

在互联网中,关于“RPython”的文章,排名前十的搜索结果中只有2篇讨论了一起使用R和Python的优点,而不是把这两种语言对立起来看。这是可以理解的:这两种语言从一开始都具有非常显著的优缺点。从历史上看,尽管把两者分割开来是因为教育背景:统计学家们倾向用R,而程序员则选择了Python语言。然而,随着数据科学家的增加,这种区别开始变得模糊起来:

数据科学家就是这样一种人:软件工程师中最懂统计学,统计学家中最会编程的人。-josh_wills在推特上这样说到。

由于这两种语言各自提供大量独特的库资源,对能够利用这两种语言的相对优势的数据科学家的需求正在不断增长。

◆◆◆

Python与R的对比

在以下领域中,Python比R更有优势:

网络爬虫和数据抓取:虽然R中的rvst已经简化了网页抓取,Python的bautifulsoup和Scrapy更加成熟,并提供更多的功能。

数据库连接:虽然R有大量的用于连接到数据库的选项,Python的sqlachmy只用了一个程序包就提供了所有的数据库连接功能,并可广泛用于生产环境。

而在以下领域中,R比Python更有优势:

统计分析选项:尽管Python的SciPy和Pandas以及statsmodls的组合提供了很大的一套统计分析工具,而R是专门围绕着统计分析应用等创建的,因此提供了更多的相关工具。

交互式图像或控制板:bokh,plotly和intuitics最近都把Python的图形使用扩展到了Wb浏览器,但是举个使用shiny的例子,R中的shiny控制面板运行速度更快,而且往往需要更少的代码。

此外,由于数据科学团队现在拥有一个比较广泛的技能库,任何应用程序所选择的编程语言都可能用到以前的知识和经验。对于一些应用,特别是原型设计和开发应用,人们使用他们已知的工具则速度会更快。

纯文本的“AirGap(网闸)”策略

指在完全断开网络物理连接的基础上,实现合法信息的共享。本文中指用纯文本文件实现两种语言间代码的共享——译者注。

使用纯文本作为两种语言之间的物理隔离,你需要按如下步骤进行。

从命令行中重构你的R和Python脚本,并接受命令行参数。

输出共享数据到公共文件格式。

在一种语言中执行另一种语言,按要求传递参数。

优势:

最简单的方法,通常最快

可以轻松查看中间输出结果

已有常见文件格式,如:CSV,JSON,YAML的解析器

劣势:

需要事先商定一个共同的模式或文件格式

如果流程变长的话,难以管理中间输出结果和路径

如果数据量变大,本地磁盘读写将成为瓶颈

命令行脚本

通过Windows或Linux终端环境命令行运行R和Python脚本类似。要运行的命令被分解成以下部分:









































天津市治疗白癜风的医院
白癜风治疗最新方法



转载请注明:http://www.zjiaren.com/jbxx/4121.html