0

我刚开始使用 Python resp。Rpy2 所以我真的是一个初学者。到目前为止,我设法通过 Rpy2 加载了我自己的 R 包,并生成了我的输入变量的结果(类似于 R 的 lm() 函数)。我的结果如下:

>>> res
<ListVector - Python:0x1561828 / R:0xe6a5c8>
[Matrix, Array]
  coef.f: <class 'rpy2.robjects.vectors.Matrix'>
  [-10.554713, 1.640681, 0.957045, ..., 0.000000, 0.000000, 0.783108]
  pred.f: <class 'rpy2.robjects.vectors.Array'>
  [17.189366, 7.116058, 41.526062, ..., 459.952946, 312.088634, 677.908581]

我还可以通过使用索引 1 获取数组子部分(pred.f):

>>>res1 = res[1]
>>> res1
<Array - Python:0x1561850 / R:0x4b299d0>
[17.189366, 7.116058, 41.526062, ..., 459.952946, 312.088634, 677.908581]
>>> print res1
, , L=300, AR=1.5, SO=1, T=30

    sigma_stat sigma_mob
fit  17.189366 152.21461
lwr   7.116058  76.98245
upr  41.526062 301.01379

, , L=300, AR=1.5, SO=2, T=30

    sigma_stat sigma_mob
fit   27.62310  284.5423
lwr   14.54639  173.3316
upr   52.45825  467.1449

, , L=300, AR=1.5, SO=3, T=30

    sigma_stat sigma_mob
fit   39.75894  459.9529
lwr   24.07098  312.0886
upr   65.67369  677.9086

现在我想用一种智能的方式来访问这个数组中的某些数字。例如。我想要 sigma_stat,fit,L=300,AR=1.5,SO=3,T=30 的数字……这意味着我的数组是 6 维的。

有没有简单的方法可以做到这一点?类似于使用维度名称/数字进行索引: res1('sigma_stat','fit','L'=300,'AR'=1.5,'SO'=3,'T'=30)

感谢您的帮助...

4

1 回答 1

0

像这样的工作吗?

res1.rx('sigma_stat', 'fit', 'L=300', 'AR=1.5', 'SO=3', 'T=30')

(请注意,维度名称必须按正确的顺序排列——我不认为测试的时间可能是“sigma_stat”,而“fit”应该放在参数列表的末尾)

于 2012-04-14T20:42:56.180 回答