首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R语言的Python接口

R语言的Python接口
EN

Stack Overflow用户
提问于 2012-07-30 07:17:38
回答 3查看 62K关注 0票数 54

我对R很陌生,并且非常习惯于python。我不太习惯写R码。我正在寻找到R的python接口,它允许我使用pythonic方式的R包。

我做过谷歌的研究,发现很少有软件包能做到这一点:

  • Rpy2
  • PypeR
  • pyRserve

但不确定哪个更好?哪一个有更多的缴费者和更积极的使用?

请注意,我的主要要求是pythonic方式访问R包

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-30 07:36:13

正如@lgautier所指出的,关于这个问题的另一个答案已经存在了。我把我的答案留在这里,因为它增加了以新手的身份接触R的经验,首先了解Python。

我同时使用Python和R,并同情你作为R.

由于你得到的任何答案都是主观的,我从我的经验中总结出几点:

  • 我使用rpy2作为我的界面,并发现它是'Pythonic',稳定,可预测,并足以满足我的需要。我没有使用其他软件包,所以这不是对它们的评论,而是rpy2本身的优点。
  • 但是,不要期望在Python中有一种使用R的简单方法,而不学习这两种方法。我发现,在这两种语言之间添加一个接口可以在您知道这两种语言的情况下轻松编写代码,但对于一种语言有缺陷的人来说,调试却是一场噩梦。

我的建议是:

  1. 对于大多数应用程序,Python的包允许您在R中完成您想要做的大部分事情,从数据争用到绘图。查看SciPyNumPy熊猫BioPythonmatplotlib和其他科学包,甚至查看完整的蟒蛇恩思德 python发行版。这允许您停留在Python环境中,并为您提供所需的大部分功能。
  2. 同时,你会想要R的范围广泛的专业包,所以花一些时间学习它在一个互动的环境。我发现几乎不可能掌握命令行上的基本R,但是RStudio以及快速-R学习-R的教程让我学习得很快。

一旦您知道了这两个,那么您将使用rpy2魔术,而不可怕的跨语言调试。

新资源

2015年1月29日最新消息

事实证明,这一答案很受欢迎,因此我认为,指出最近的两项资源将是有益的:

三叉R拉瑟尔pyRserve允许构建从Python的网络桥:现在可以从Python调用R-函数,就好像它们是用Python实现的一样,甚至可以通过这种连接执行完整的R脚本。

  • 现在可以使用IPython/Jupyter将R和Python结合起来,这大大简化了将这两种语言结合在一起的可重复研究和笔记本的工作。
票数 66
EN

Stack Overflow用户

发布于 2012-07-30 08:20:47

网站早些时候回答了一个关于比较rpy2、pyrserve和pyper的问题。

关于投稿人的数量,我想说这三个人的人数都相对较少。像奥罗这样的网站可以给出一个更不恰当的答案。

如何积极地使用一个包是很难确定的。一种指示可能是下载的数量,另一种可能是邮件列表上的帖子数量或网站上的数量问题(如堆栈溢出)、使用它或引用它的其他软件包的数量、提及该软件包的简历或职务空缺的数量。虽然我相信我可以作出公平的评价,但我也可能被视为有利益冲突。;-)

这三种方法各有优缺点。我想说你的选择是基于这个。

票数 5
EN

Stack Overflow用户

发布于 2012-07-30 09:15:23

我的个人经历是在Rpy,而不是Rpy2。我使用了一段时间,但放弃了它,转而使用system命令。对我来说,一个典型的例子是使用Python脚本运行FORTRAN模型,以及使用R进行后处理--在我的经验中,最简单的解决方案是使用R创建命令行工具,这是非常简单的(至少在Linux下)。命令行工具可以在模型运行的根目录中执行,脚本将在Routput目录中生成一组R对象和绘图。以这种方式断开R和Python的优点是,我可以轻松地调试与Python代码分开的R代码。

我认为,当R和Python之间需要大量的来回通信时,Rpy确实会发光。但是,如果功能可以很好地分离,并且磁盘i/o的开销也不算太差,我会坚持使用system调用。有关系统调用的更多信息,请参见?system,作为命令行工具运行R脚本的Rscript

对于您希望以Python方式编写R代码的问题,这是不可能的,因为所有的解决方案都要求您用R语法编写R代码。对于Rpy,这意味着R语法,但有点不同(例如,没有. )。我同意@gauden的观点,即通过Rpy使用R没有捷径。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11716923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档