从函数返回时rpy2错误 - RNULLType不可迭代

问题描述 投票:0回答:1

我很喜欢rpy2但是我从Rand Wilcox强大的统计数据包中找到了一个功能。

出于某种原因,当我运行该函数时,我收到以下错误:

TypeError: 'rpy2.rinterface.RNULLType' object is not iterable

我很确定我正在使用该函数,因为它只需要一些整数和一个数据帧(或列表或数组列表)作为参数。

Here is a reproducible example:

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_

.
.
.

奇怪的是,如果我将它分配给输出变量,它不会崩溃,直到我检查它:

no crashing

output=wilcox.bbmcppb(2,3,data)

crashing (with the above error)

output=wilcox.bbmcppb(2,3,data)
output

有什么想法在这里发生了什么?

python r rpy2
1个回答
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上找到

© www.soinside.com 2019 - 2024. All rights reserved.