簡體   English   中英

如何抑制rpy2中的錯誤消息

[英]How to suppress error messages in rpy2

以下代碼不起作用。 似乎R警告消息引發python錯誤。

# enable use of python objects in rpy2
import rpy2.robjects.numpy2ri
import numpy as np
from rpy2.robjects import r

# create an example array
a = np.array([[5,2,5],[3,7,8]])

# this line leads to a warning message, which in turn raises an 
# error message if run within a script.
result = r['chisq.test'](a)

在ipython中運行該代碼示例是可行的,但是,在腳本內部運行它會引發errorTypeError:'module'對象不可取消。 我認為這是由於警告消息引起的。

避免此問題的最佳方法是什么? 提前致謝!

在錯誤之前放置打印語句:

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

然后第二個import語句將覆蓋第一個import語句,此后,名稱r引用模塊rpy2而不是rpy2.robjects.r

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM