我很喜欢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
有什么想法吗?
答案 0 :(得分:0)
我遇到了类似的问题。输出存储在变量result
中,该变量显示
TypeError: 'rpy2.rinterface.RNULLType'
。但是我需要的输出在result[0]
中,然后由result[0].to_csvfile('result.csv')
导出到一个csv文件。result[1]
引发了异常。
如果您想解决问题,可以尝试一下。可以在https://bitbucket.org/rpy2/rpy2/issues/388/sequence_to_vector-does-not-accept-empty
上找到有关此问题的一些讨论