rpy2将包中的R符号转换为Python符号时发生冲突

问题描述

我只是尝试了以下方法:

 read_file.to_csv (r'C:\Users\Desktop\workspace\Converter\20200923.csv',index=False)

并收到此错误

import rpy2
import rpy2.robjects as RObjects
from rpy2.robjects.packages import importr

princurve = importr('princurve',robject_translations = {"plot_principal_curve": "plot.principal.curve"})
princurve = importr('princurve',robject_translations = {"points_principal_curve": "points.principal.curve"})

有人可以帮忙吗?

解决方法

您快到了!在robject_translations中,您需要提供R名称-> Python名称映射,但是您的字典似乎却与此相反。您还需要将所有映射都放在一个字典中。为了使其更加清晰,您可以像这样解决冲突:

princurve_example_1 = importr(
    "princurve",robject_translations={
        "plot.principal.curve": "plot_dot_principal_dot_curve","lines.principal.curve": "lines_dot_principal_dot_curve","points.principal.curve": "points_dot_principal_dot_curve",# optional (if omitted,you will get them under plot_principal_curve,etc.):
        "plot.principal_curve": "plot_dot_principal_curve","lines.principal_curve": "lines_dot_principal_curve","points.principal_curve": "points_dot_principal_curve"
    }
)
# then,after creating the curve and storing it in curve variable:
princurve_example_1.plot_dot_principal_dot_curve(curve)
# or
princurve_example_1.plot_dot_principal_curve(curve)

但是,在咨询了pincurve documentation之后,我发现principal.curve已过时,您应该改用principal_curve(很高兴看到更多的R包最终转向使用下划线的约定。函数和变量名!);因此,您可以这样做:

princurve = importr(
    "princurve",robject_translations={
        "plot.principal.curve": "plot_principal_curve_deprecated","lines.principal.curve": "lines_principal_curve_deprecated","points.principal.curve": "points_principal_curve_deprecated",}
)
# auto-generated from "plot.principal_curve"
princurve.plot_principal_curve(curve)
# manually mapped from "plot.principal.curve"
princurve.plot_principal_curve_deprecated(curve)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...