在Python中嵌入R代码

14 投票
4 回答
15210 浏览
提问于 2025-04-17 13:51

我想在一个Python程序里进行一些计算,但我更希望用R来做其中的一部分。请问可以把R代码嵌入到Python里吗?

4 个回答

4

当我需要进行R语言的计算时,我通常会写一些R脚本,然后通过Python中的subprocess模块来运行它们。我之所以选择这样做,是因为我安装的R版本(我记得是2.16)当时和RPy不兼容(RPy需要2.14版本)。

所以,如果你已经把你的R安装配置得“正合适”,那么这种方法可能会更好。

8

RPy 是处理这类问题的好帮手。

scipy、numpy 和 matplotlib 这几个包的功能和 R 很相似,而且功能非常全面。不过,如果你想把 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()
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’)

撰写回答