使用rpy2

时间:2017-03-04 19:07:38

标签: python r rpy2 dirichlet

我正在尝试使用Python进行Dirichlet回归。不幸的是,我找不到能够完成工作的Python包。所以我尝试使用DirichletReg调用R库rpy2。但是,如何调用DirichReg(Y ~ X1 + X2 + X3, data=predictorData) Y = DR_data(compositionalData)之类的回归函数对我来说并不是很直观。我在lm的文档中看到了调用线性回归函数rpy2的示例。但我的情况略有不同,因为Y不是表中的列名,而是R对象DR_data

我想知道这样做的正确方法是什么,或者Dirichlet回归是否有Python包。

1 个答案:

答案 0 :(得分:1)

您可以将对象发送到" Formula"来自python的环境。此示例来自rpy2 docs:

import array
from rpy2.robjects import IntVector, Formula
from rpy2.robjects.packages import importr
stats = importr('stats')

x = IntVector(range(1, 11))
y = x.ro + stats.rnorm(10, sd=0.2)

fmla = Formula('y ~ x')
env = fmla.environment
env['x'] = x
env['y'] = y

fit = stats.lm(fmla)

您还可以在R环境中创建命名变量(在公式之外)。见here。在最糟糕的情况下,您将一些python数据通过rpy2移动到R中,然后按照here所述通过rpy2桥直接在R中发出命令。