【发布时间】:2018-11-29 14:00:06
【问题描述】:
我喜欢 rpy2,但在运行 Rand Wilcox 强大的统计数据包中的函数时遇到了障碍。
由于某种原因,当我运行该函数时,出现以下错误:
TypeError: 'rpy2.rinterface.RNULLType' object is not iterable
我相当确定我正确使用了该函数,因为它只需要一些整数和一个数据框(或列表列表或数组)作为参数。
这是一个可重现的例子:
import pandas as pd
import rpy2.robjects as robjects
import random
import numpy as np
from rpy2.robjects import pandas2ri
from urllib.request import urlopen
from rpy2.robjects.packages import SignatureTranslatedAnonymousPackage
pandas2ri.activate()
url = urlopen('https://dornsife.usc.edu/assets/sites/239/docs/Rallfun-v35.txt')
string = b''.join(url.readlines()).decode()
wilcox = SignatureTranslatedAnonymousPackage(string, "wilcox")
data=[list(np.random.normal(0, 1, 50))]*6
wilcox.bbmcppb(2,3,data)
如您所见,返回了一些空值,并且似乎还有一些其他数据。 TypeError: 'rpy2.rinterface.RNULLType' 对象不可迭代
R object with classes: ('list',) mapped to:
<ListVector - Python:0x7f0e889dba08 / R:0x9a7bec8>
[ListVector, Matrix, Matrix, Matrix]
R object with classes: ('list',) mapped to:
<ListVector - Python:0x7f0e889dba08 / R:0x9a7bec8>
[ListVector, Matrix, Matrix, Matrix]
Fac.A: <class 'rpy2.robjects.vectors.Matrix'>
R object with classes: ('matrix',) mapped to:
<Matrix - Python:0x7f0e889da948 / R:0xaf6ec80>
[1.000000, NA_real_, NA_real_, 0.050000, NA_real_, NA_real_
.
.
.
奇怪的是,如果我将它分配给输出变量,它不会崩溃,直到我检查它:
不会崩溃
output=wilcox.bbmcppb(2,3,data)
崩溃(出现上述错误)
output=wilcox.bbmcppb(2,3,data)
output
有什么想法吗?
【问题讨论】: