python - Rpy2、pyrserve 和 PypeR 如何比较?

标签 python r rpy2 pyrserve pyper

我想从 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/

相关文章:

r - 如何让 print() 将参数传递给 R 中用户定义的打印方法?

python - 为什么 Pip 会忽略已配置的具有嵌套依赖项的存储库?

python - 用于 Ruby 或 Python 的 Git 库?

python - 用Python解析模糊时间戳

r - 通过apply函数生成多个ggplot箱线图

python - 在 Anaconda Jupyter Notebook (MAC OSX) 中加载 rpy2 时出现导入错误

python - *有效地*使用 RPy(或其他方式)将数据帧从 Pandas 移动到 R

python - 禁止 save() 以防止由于未保存的相关对象导致数据丢失

python - 如何在Python中将字符串转换为null或Nan?

arrays - 如何简单地折叠(求和)R 中数组中的某些行