我们应该更多地关注技能而不是工具。如果您正在考虑进入数据科学领域,您可能会立即想到R和Python。但是,我们不打算将它们视为两种选择,而是更多地比较它们。R和Python都是各自领域的优秀工具。尽管如此,他们经常争吵如仇。如果你在谷歌搜索栏中输入“RvsPython”,你会看到很多关于它们至高无上的信息。产生这种观点的原因之一是,数据科学领域根据使用的编程语言的选择分为不同的阵营——R阵营和Python阵营,而历史证明这两个阵营无法和谐共处。两个阵营的成员都坚信,他们对语言的选择优于对方。因此,在某种程度上,分歧不在于工具,而在于使用这些工具的人。为什么不把两者结合起来呢?在数据科学领域有一些人同时使用Python和R,但他们所占的比例非常小。另一方面,有很多人只从事一种编程语言的工作,但他们希望能够使用对手的某些功能。例如,R用户有时渴望Python固有的面向对象的功能,同样一些Python用户渴望R中提供的广泛的统计分布。上图显示了RedMonk2018年第三季度的调查结果。这些结果是基于StackOverflow和Github上流行的语言,并清楚地表明R和Python的得分都很高。因此,我们没有理由不能与他们在同一个项目上合作。我们的最终目标应该是进行更好的分析并获得更好的见解,选择编程语言不应成为实现这一目标的障碍。看看R和python让我们看看这两种语言的各个方面以及它们的优点和缺点是什么。自1991年发布以来,pyhton变得非常流行,并广泛用于数据处理。以下是python如此受欢迎的原因:面向对象泛型拥有大量的扩展库和优秀的社区支持由于有大量用于科学计算和机器学习的包,例如pandas、numpy和scikit-learn,这使得python成为机器学习领域的绝佳选择。不幸的是,pyhton没有专门用于统计计算的包。然而,R有。RR于1995年发布。从那时起,R就成为数据科学领域最有用的工具之一。它具有以下优点:R拥有几乎所有可以想象的统计计算包。CRAN目前有超过10,000个包。附带最先进的可视化库,例如ggplot。能够进行独立分析R是如此强大,但它不是最快的语言,并且在处理大型数据集时会消耗大量内存。两全其美我们可以利用R的统计能力和Python的编程能力吗?那么,当我们可以轻松地将SQL代码嵌入到R或Python脚本中时,为什么不混合使用R和Python?基本上有两个可以在一个项目中同时使用Python和R。Python中的RPypeRPypeR提供了一种通过管道从Python访问R的简单方法。PypeR也包含在Python的包索引中,这提供了更方便的安装方法。当不需要在Python和R之间进行频繁的交互式数据传输时,PypeR尤其有用。通过管道运行R,Python程序在子进程控制、内存控制和跨流行操作系统平台(包括Windows、GNULinux和MacOS)的可移植性方面获得了灵活性。pyRservepyRserve使用Rserve作为RPC连接网关。通过这样的连接,可以在Python中的R中设置变量,远程调用R函数。R对象作为python实现的类的实例公开,并且在许多情况下,R充当这些对象的绑定方法。rpy2rpy2在Python进程中运行嵌入式R。它创建了一个框架,可以将Python对象转换为R对象,将它们传递给R函数,并将R输出转换回Python对象。rpy2使用较多,因为它是一个正在积极开发的。rpy2在Python进程中运行嵌入式R。它创建了一个框架,可以将Python对象转换为R对象,将它们传递给R函数,并将R输出转换回Python对象。由于它是一个正在积极开发中的项目,因此使用频率更高。BasicPlothttps://rpy2.github.io/doc/latest/html/graphics.html#plotGeometryhttps://rpy2.github.io/doc/latest/html/graphics.html#geometryResources想进一步了解rpy2,请参阅以下资源:rpy2的官方文档RPy2:结合R+Python的强大功能进行数据科学使用RPy2R从Python访问R调用Python我们可以选择以下方法之一在Python中运行R脚本:rJython这个工具包使用Jython实现了一个Python接口。它的目的是使其他包能够在R中嵌入Python代码。rPythonrPython也是一个使R语言能够调用Python的工具包。使用rPython,您可以通过R语言运行Python代码、调用函数、分配和检索变量等。雷锋网(公众号:雷锋网)SnakeCharmRSnakeCharmR是rPython的改进版。它源自rPython的'jsonlite'分支,与rPython相比有许多改进。PythonInRPythonInR提供了R与Python交互的函数,简化了通过R访问Python的过程。reticulate包提供了Python与R互操作的全套工具。在上面提供的所有方法中,reticulate是使用最广泛的,也更多重要的是,它是使用Rstudio开发的。Reticulate将Python会话嵌入到R会话中,从而实现无缝、高性能的交互性能。这个包使您能够将Python代码编织到R中,创建一种混合两种语言的新型项目。reticulate包提供以下工具:支持以多种方式从R调用Python,包括R标记、加载Python脚本、导入Python模块以及在R会话中以交互方式使用Python。实现R和Python对象之间的转换(例如:R和Pandas数据框之间,或者R矩阵和NumPy数组之间)。灵活绑定到不同版本的Python,包括虚拟和Conda环境。资源一些使用reticulate包的好资源是:文档非常强大,有很多示例和用例可以帮助您入门(单击原文查看文档)。https://longhowlam.wordpress.com/2017/04/10/test-driving-python-integration-in-r-using-the-reticulate-package/包中的蛇:结合PYTHON和R与RETICULATE两个Python都是非常健壮的语言,它们中的任何一种实际上都足以胜任数据分析任务。然而,两者肯定都有一些高潮和低谷,如果我们能够利用两者,我们可以做得更好。无论哪种方式,了解两者都会使我们更加灵活,增加我们能够在各种环境中工作的机会。
