我知道基本的python编程,因此希望保持在python datasci路径上。 问题是,有许多R套餐吸引我作为一个社会科学人。 Rpy2可以完全使用任何一般的任意r包,或者是否有捕获。它在实践中有多好?
如果Rpy2太有限了,我很遗憾不得不转移到r,但我不愿意,因为额外的开销。
由于 泰
答案 0 :(得分:2)
我建议您将RPy2与IPythons %rmagic一起使用。
但是,RPy2不是Python的替换或端口或R的统计函数库。它基本上是一种从Python中调用R的简单方法(R解释器在后台启动)。您可以在R和Python(numpy数组等)之间传递基本数据结构,但更专业的结构(例如R的zoo或xts对象)可能会导致问题。
最后,你还需要知道R的语法等才能使用RPy2。与Python中的R-Objects交互很好,但是你仍然需要了解很多关于R-Objects的知识。
答案 1 :(得分:2)
带来假定的限制。
Rpy2
处于较低级别(rpy2.rinterface
级别),暴露了R C-API的很大一部分。从技术上讲,人们可以用rpy2
做更多的事情而不是R本身做的事情(为R编写C扩展可能是追赶的唯一方法)。作为一个有趣的事实,从rpy2
做“R stuff”比从R本身做同样的事情要快(参见rpy2
文档对R向量中元素的访问进行基准测试。)
rpy2
(rpy2.robject
级别)中的较高级别是添加一个层,使“做R事件”更“pythonic”(尽管通过放弃上面提到的性能声明)。 R包看起来像Python模块,有类,如Formula,Factor等...将所有R对象都作为Python类,有一个转换系统让一个复杂的R结构可以自动映射到Python对象(参见带有{的示例在lme4
文档0中,{1}}转换为无效的R变量名称('。'是R中变量名的有效字符),从R文档中即时创建Python文档字符串。