为什么会出现“模块'rpy2.robjects.conversion'没有属性'py2rpy'”错误?

2024-09-28 23:23:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用guidehere将pandas数据帧转换为R数据帧。到目前为止,我掌握的代码是:

import pandas as pd
import rpy2.robjects as ro
from rpy2.robjects import pandas2ri

from rpy2.robjects.conversion import localconverter

pd_df = pd.DataFrame({'int_values': [1, 2, 3],
                      'str_values': ['abc', 'def', 'ghi']})

with localconverter(ro.default_converter + pandas2ri.converter):
  r_from_pd_df = ro.conversion.py2rpy(pd_df)

但是,这给了我以下错误:

Traceback (most recent call last):
  File <my_file_ref>, line 13, in <module>
    r_from_pd_df = ro.conversion.py2rpy(pd_df)
AttributeError: module 'rpy2.robjects.conversion' has no attribute 'py2rpy'

我发现了this相关的问题,OP指的是正在更改的函数名,但没有解释更改是什么。我试过看这个模块,但我还没有足够的能力理解它

公认的答案是指检查我已经完成的版本,我肯定使用RPY2v3.3.3,这与我遵循的指南相同

是否有人遇到此错误并找到了解决方案


Tags: 数据fromimportpandasdfroaspd
1条回答
网友
1楼 · 发布于 2024-09-28 23:23:02

您所指出的rpy2文档部分是通过运行代码示例构建的。这意味着该示例使用了相应版本的rpy2

我不确定您是否正在运行时使用该版本的rpy2?例如,添加print(rpy2.__version__)以检查情况是否如此

值得一提的是,rpy2 3.3.x系列的最新版本是3.3.6,可能没有什么理由继续使用3.3.3。否则rpy2 3.4.0刚刚发布;如果使用R4.0或更高版本,或R包的最新版本dplyrggplot2及其rpy2包装,我建议使用该版本

[PS:我刚刚用rpy2-3.4.0尝试了您的示例,它运行时没有错误]

相关问题 更多 >