2017-03-04 147 views
2

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

我想知道正确的方法是做到这一点的,或者是否有一个Python包狄氏回归。

回答

1

您可以发送对象为从蟒蛇“公式”的环境。这个例子来自rpy2文档:

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。最坏的情况,您可以通过rpy2桥描述here还可以将一些你的Python数据为R通过rpy2,然后发出命令直接在R上。

+0

谢谢诺亚。这工作。 – LinX