在Python中使用R的BNLearn

时间:2019-07-08 02:27:39

标签: python r rpy2 bnlearn

我正在尝试将R库引入python,以便可以将它们用于数据处理。有问题的库是BNLearn。使用rpy2,我可以将BNLearn拉入python。但是,每当我尝试将列表输入BNlearn时,都会收到以下错误。

from rpy2.robjects.packages import importr
from rpy2.robjects import ListVector, StrVector

BNLearn = importr("bnlearn")

SList = ['a','b','c','d','e']

res = StrVector(SList)

BNLearn.empty_graph(res)
  

回溯(最近通话最近一次):

  File "/anaconda3/lib/python3.7/site-packages/IPython/core/formatters.py", line 345, in __call__
    return method()

  File "/anaconda3/lib/python3.7/site-packages/rpy2/robjects/vectors.py", line 683, in _repr_html_
    elements.append(e._repr_html_())

  File "/anaconda3/lib/python3.7/site-packages/rpy2/robjects/vectors.py", line 683, in _repr_html_
    elements.append(e._repr_html_())

  File "/anaconda3/lib/python3.7/site-packages/rpy2/robjects/vectors.py", line 690, in _repr_html_
    names.extend(self.names)

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

我尝试谷歌搜索错误,但是没有多少人谈论它。它声称该对象不是可迭代的,但是如果我使用基本的python字符串,则会收到以下消息

BNLearn.empty_graph(SList)
  

RRuntimeError:check.nodes(nodes)中的错误:     节点必须是字符串的向量,即节点的标签。

StrVector用于解决以上代码中的此错误。

0 个答案:

没有答案