【问题标题】:How to call ltm function using rpy package in python如何在python中使用rpy包调用ltm函数
【发布时间】:2013-01-08 10:24:04
【问题描述】:

我正在尝试以下代码:

from rpy import *
r.library("ltm")

dat= #some data frame or matrix
r.ltm(r('dat~z1'))

即将出现的错误是--- RPy_RException: Error in eval(expr, envir, enclos) : 找不到对象“dat”

请告诉我使用rpy库调用ltm函数的正确方法

【问题讨论】:

    标签: r python


    【解决方案1】:

    我会尝试使用 rpy2 和类似以下内容的通用方法:

    from rpy2.robjects import *
    r("library('ltm')")
    r.assign('r_var_name',py_var_name)
    r("r_var_name<-as.desired.data.type(r_var_name)")
    

    然后,无论你对 'r_var_name' 执行什么命令,都在进一步的 r("blah") 语句中使用 'ltm' 包函数。

    例如获取 ltm 包示例之一的系数:

    In [30]: py_obj = r("coef(ltm(Abortion ~ z1, control = list(GHk = 20, iter.em = 20)))")
    In [32]: py_obj
    Out[32]: 
    <Matrix - Python:0x4db0290 / R:0x52f04f0>
    [0.188998, -0.256378, -0.367623, ..., 4.542567, 5.840821, 3.243826]
    

    【讨论】:

    • 感谢@conjectures。您的以下行直接帮助了我- r.assign('r_var_name',py_var_name) 我也能够使用 rpy 包运行它。非常感谢 :) 但我还没有在 windows7 64 位中使用 rpy2。你知道在windows7 64位上安装rpy2的好方法吗??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-23
    相关资源
    最近更新 更多