我想从 Python 程序中访问 R。我知道 Rpy2、pyrserve 和 PypeR。
这三个选项的优缺点是什么?
最佳答案
我比其他人更了解这三个中的一个,但按照问题中给出的顺序:
rpy2:
- Python 和 R 之间的 C 级接口(interface)(R 作为嵌入式进程运行)
- R 对象暴露给 Python,无需复制数据
- 相反,Python 的 numpy 数组可以在不复制的情况下暴露给 R
- 低级接口(interface)(接近 R C-API)和高级接口(interface)(为了方便)
- 可以对向量和数组进行就地修改
- R回调函数可以用Python实现
- 可能有带有 Python 标签的匿名 R 对象
- 可以进行 Python 酸洗
- 使用控制台完全自定义 R 的行为(因此可以实现完整的 R GUI)
- 对 MSWindows 的支持有限
pyrserve:
- native Python 代码(将/应该/可能与 CPython、Jython、IronPython 一起使用)
- 使用 R 的 Rserve
- 与远程计算和 RServe 相关的优点和不便
pyper:
- native Python 代码(将/应该/可能与 CPython、Jython、IronPython 一起使用)
- 使用管道让 Python 与 R 进行通信(其优点和不便之处)
编辑: Windows 对 rpy2 的支持
关于python - Rpy2、pyrserve 和 PypeR 如何比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5630441/