【发布时间】:2014-08-04 15:29:51
【问题描述】:
我正在通过 RPy 与 nlme 和 lme4 R 函数交互,我想从我的 python 控制台访问输出摘要。
我运行以下代码:
test1=nlme.lme(r.formula('Pupil~CoI*Time'), random=r.formula('~1|ID'),data=dfr)
test2=nlme.lme(r.formula('Pupil~CoI*measurement'),random=r.formula('~1|ID'),data=dfr)
test1_sum= r.summary(test1)
test2_sum= r.summary(test2)
print test1_sum
print test2_sum
对于 nlme,这个对于 lme4:
test1=lme4.lmer(r.formula('Pupil~CoI*Time+(1|ID)'),data=dfr)
test2=lme4.lmer(r.formula('Pupil~CoI*measurement+(1|ID)'),data=dfr)
test1_sum= r.summary(test1)
test2_sum= r.summary(test2)
print test1_sum
print test2_sum
要获取包含数据和显式导入的代码 sn-p,请参阅此IPython notebook。
在所有情况下,我都会得到大量的打印输出,其中包括一个非常长的部分,如下所示:
Data: structure(list(CoI = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L ......
我想获得更多类似以下内容的摘要:
Random effects:
Formula: ~1 | ID
(Intercept) Residual
StdDev: 0.2201214 0.1199874
Fixed effects: Pupil ~ CoI * measurement
Value Std.Error DF t-value p-value
(Intercept) 1.2068660 0.06369911 5769 18.946357 0
CoIhard -0.0394413 0.00629117 5769 -6.269306 0
measurement -0.0002743 0.00003207 5769 -8.554287 0
CoIhard:measurement 0.0005227 0.00004536 5769 11.524511 0
Correlation:
(Intr) CoIhrd msrmnt
CoIhard -0.049
measurement -0.060 0.612
CoIhard:measurement 0.043 -0.865 -0.707
Standardized Within-Group Residuals:
Min Q1 Med Q3 Max
-9.86773055 -0.37638950 0.02085029 0.43203795 4.97364143
Number of Observations: 5784
Number of Groups: 12
(包含在我得到的内容中,但在上述内容之后只有数千个条目) 我如何做到这一点?
【问题讨论】:
-
如果这篇文章有帮助,请告诉我:stackoverflow.com/questions/22693059/…,或者您需要自定义答案。
-
有点。然而,这是一个不同的功能和一个稍微不同的问题。但我现在明白了,我可以用
summary[2]之类的索引来分割摘要。有什么方法可以直接使用summary.names中的名称吗?喜欢summary["tTable"]?目前我得到'str' object cannot be interpreted as an index。 -
使用
.rx2(),这里有详细的例子: -
我真的非常不清楚 RPy 是如何工作的,但作为 lme4 的维护者之一,我知道它在 R 中是如何工作的。如果你想获取一个 object包含将由(例如)
summary.merMod打印的内容,您可以在 R 中执行capture.output(summary(fitted_model))... -
@BenBolker +1。对于这些事情,R 是不是完全违反直觉...