【问题标题】:Call R library DirichletReg from Python using rpy2使用 rpy2 从 Python 调用 R 库 DirichletReg
【发布时间】:2017-07-24 19:37:41
【问题描述】:

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

我想知道执行此操作的正确方法是什么,或者是否有用于 Dirichlet 回归的 Python 包。

【问题讨论】:

    标签: python r rpy2 dirichlet


    【解决方案1】:

    您可以从 python 将对象发送到“公式”环境。此示例来自 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 将一些 python 数据移动到 R 中,然后通过 rpy2 桥直接在 R 中发出命令,如here 所述。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-06
      • 2014-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多