我很喜欢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
有什么想法在这里发生了什么?
我遇到了类似的问题。输出存储在变量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上找到