如何在python中使用rpy包调用ltm函数

时间:2013-01-08 10:24:05

标签: r python

我正在尝试以下代码:

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

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

错误来了--- RPy_RException:eval中的错误(expr,envir,enclos)   :找不到对象'dat'

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

1 个答案:

答案 0 :(得分: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)")

然后使用'ltm'包函数在'r_var_name'中执行的任何命令都在r(“blah”)语句中。

E.g。获取其中一个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]