используя BNLearn от R в Python - PullRequest
1 голос
/ 08 июля 2019

Я пытаюсь вытянуть библиотеки 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)

Traceback (последний последний вызов):

  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 (узлах): узлы должны быть вектором символьных строк, меток узлов.

StrVector был использован для решения этой ошибки в коде выше.

...