2012-04-11 91 views
0

我刚开始使用Python resp。 Rpy2,所以我真的是一个初学者。 到目前为止,我设法通过Rpy2 加载我自己的R包,并生成我输入变量的结果(与R的lm()函数可比较的 )。 我的结果是以下几点:在rpy2中对数组进行索引

>>> 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)

谢谢为你的帮助...

回答

0

会这样的工作?

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

(注意维度名称必须以正确的顺序 - 我不知道的时间来检验,可能是“sigma_stat”和“适合”应该去的参数列表的末尾)

相关问题