12

我需要在 python 程序中进行计算,我更愿意在 R 中进行一些计算。是否可以在 python 中嵌入 R 代码?

4

3 回答 3

8

您应该看一下rpy此处的文档链接)。

这允许您执行以下操作:

from rpy import *

然后你可以r像在 R 中那样使用调用的对象进行计算。

这是从文档中提取的示例:

>>> from rpy import *
>>>
>>> degrees = 4
>>> grid = r.seq(0, 10, length=100)
>>> values = [r.dchisq(x, degrees) for x in grid]
>>> r.par(ann=0)
>>> r.plot(grid, values, type=’lines’)
于 2013-01-27T19:51:05.217 回答
8

RPy是这类事情的朋友。

scipy、numpy 和 matplotlib 包都对 R 做了类似的事情,并且非常完整,但是如果你想混合语言,RPy 是最好的选择!

from rpy2.robjects import *

def main(): 
    degrees = 4 
    grid = r.seq(0, 10, length=100) 
    values = [r.dchisq(x, degrees) for x in grid] 
    r.par(ann=0) 
    r.plot(grid, values, type='l') 

if __name__ == '__main__': 
     main()
于 2013-01-27T19:57:35.263 回答
3

当我需要进行 R 计算时,我通常会编写 R 脚本,并使用subprocess模块从 Python 运行它们。我选择这样做的原因是因为安装的 RI 版本(我认为是 2.16)与当时的 RPy 不兼容(需要 2.14)。

因此,如果您已经“按照您想要的方式”安装了 R,这可能是一个更好的选择。

于 2013-01-27T22:01:55.170 回答