我正在尝试使用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包。
答案 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中发出命令。