gpt4 book ai didi

python - 将任何函数从 R 包导入到 python 中

转载 作者:行者123 更新时间:2023-12-01 06:40:49 26 4
gpt4 key购买 nike

在使用 Python 的 rpy2 库与 R 配合使用时。在尝试导入 bnlearn 包的函数时,我收到以下错误消息:

# Using R inside python
import rpy2
import rpy2.robjects as robjects
import rpy2.robjects.packages as rpackages
from rpy2.robjects.vectors import StrVector
from rpy2.robjects.packages import importr
utils = rpackages.importr('utils')
utils.chooseCRANmirror(ind=1)

# Install packages
packnames = ('visNetwork', 'bnlearn')
utils.install_packages(StrVector(packnames))

# Load packages
visNetwork = importr('visNetwork')
bnlearn = importr('bnlearn')

tabu = bnlearn.tabu
fit = bn.learn.bn.fit

出现错误:

AttributeError: module 'bnlearn' has no attribute 'bn'

最佳答案

在检查 bnlearn documentation 时人们发现bn是一个类结构。因此,应该检查有问题的对象的所有属性,即运行:

bnlearn.__dict__['_rpy2r']

之后,您应该会得到与下一个类似的输出,您可以在其中找到如何导入 bnlearn 的每个属性:

...
...
'bn_boot': 'bn.boot',
'bn_cv': 'bn.cv',
'bn_cv_algorithm': 'bn.cv.algorithm',
'bn_cv_structure': 'bn.cv.structure',
'bn_fit': 'bn.fit',
'bn_fit_backend': 'bn.fit.backend',
'bn_fit_backend_continuous': 'bn.fit.backend.continuous',
'bn_fit_backend_discrete': 'bn.fit.backend.discrete',
'bn_fit_backend_mixedcg': 'bn.fit.backend.mixedcg',
'bn_fit_barchart': 'bn.fit.barchart',
'bn_fit_dotplot': 'bn.fit.dotplot',
...
...

然后,运行以下命令即可解决问题:

bn_fit = bnlearn.bn_fit

现在,您可以运行贝叶斯网络:

structure = tabu(datos, score = "loglik-g")
bn_mod = bn_fit(structure, data = datos, method = "mle")

总的来说,这种方法解决了通过 rpy2 包将任何函数从 R 包导入到 Python 的问题

关于python - 将任何函数从 R 包导入到 python 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59462337/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com