我对 R 很陌生,并且非常习惯于 python。我不太习惯编写 R 代码。我正在寻找 R 的 python 接口,它可以让我以pythonic 方式使用 R 包。
我做了谷歌研究,发现很少有可以做到这一点的软件包:
但不确定哪个更好?哪个贡献者更多,使用更积极?
请注意,我的主要要求是访问 R 包的 pythonic 方式。
正如@lgautier 所指出的,关于这个主题已经有了另一个答案。我在这里留下我的答案,因为它增加了作为新手接近 R 的经验,首先了解 Python。
我同时使用 Python 和 R,并同情您作为 R 新手的需求。
由于您得到的任何答案都是主观的,因此我根据我的经验总结几点:
我的建议:
一旦你知道这两者,那么你将使用rpy2做魔法,而不用担心跨语言调试。
2015 年 1 月 29 日更新
这个答案已被证明很受欢迎,所以我认为指出两个最近的资源会很有用:
三元组R、Rserve和pyRserve允许建立从 Python 到 R 的网桥:现在可以从 Python 调用 R 函数,就好像它们是用 Python 实现的一样,甚至可以通过此连接执行完整的 R 脚本。
rmagic
,IPython/Jupyter
从而极大地简化生产结合两种语言的可重复研究和笔记本的工作。之前在网站上回答了一个关于比较 rpy2、pyrserve 和 pyper的问题。
关于贡献者的数量,我想说所有 3 个贡献者的数量都相对较少。像Ohloh这样的网站可以给出更详细的答案。
如何积极地使用一个包是很难确定的。一个指标可能是下载次数,另一个指标可能是邮件列表上的帖子数量,或者像 stackoverflow 这样的网站上的问题数量,使用它或引用它的其他包的数量,简历或职位空缺的数量提到包裹。尽管我相信我可以给出公平的评价,但我也可能被视为存在利益冲突。;-)
三者各有利弊。我会说你基于你的选择。
我个人经历过Rpy
,没有Rpy2
。system
我使用了一段时间,但为了使用命令而放弃了它。我的一个典型案例是使用 Python 脚本运行 FORTRAN 模型,并使用 R 进行后处理。根据我的经验,最简单的解决方案是使用 R 创建一个命令行工具,这非常简单(至少在 Linux 下是这样)。命令行工具可以在模型运行的根目录中执行,脚本会在一个Routput
目录中生成一组 R 对象和绘图。以这种方式断开 R 和 Python 的优势在于,我可以轻松地将 R 代码与 Python 代码分开调试。
我认为Rpy
当需要在 R 和 Python 之间进行大量来回通信时,它真的会发光。但是,如果功能可以很好地分离,并且磁盘 i/o 的开销不是太差,我会坚持system
调用。?system
有关系统调用以及Rscript
将 R 脚本作为命令行工具运行的更多信息,请参阅参考资料。
关于您希望以 Python 方式编写 R 代码的愿望,这是不可能的,因为所有解决方案都要求您以 R 语法编写 R 代码。因为Rpy
这意味着 R 语法,但有点不同(.
例如没有)。我同意@gauden 的观点,即使用 R through 没有捷径Rpy
。