Поместите оператор печати прямо перед ошибкой:
print(r)
result = r['chisq.test'](a)
Сообщение об ошибке TypeError: 'module' object is unsubscriptable
утверждает, что r
ссылается на модуль. Когда вы запустите скрипт с оператором print, вы увидите что-то вроде
<module 'rpy2' from '/usr/lib/python2.6/dist-packages/rpy2/__init__.pyc'>
Traceback (most recent call last):
File "/home/unutbu/pybin/test.py", line 14, in <module>
result = r['chisq.test'](a)
TypeError: 'module' object is unsubscriptable
Обратите внимание, что в первой строке указано, что r
ссылается на модуль rpy2
.
Это должно дать вам ключ к пониманию того, что идет не так. Как только вы найдете название неисправного модуля, проверьте операторы импорта, чтобы увидеть, как r
переназначается этому модулю.
Например, если у вас есть
from rpy2.robjects import r
...
import rpy2 as r
тогда второй оператор импорта переопределяет первый, а затем имя r
ссылается на модуль rpy2
вместо rpy2.robjects.r
.