【问题标题】:save RData workspace in Python using rpy2使用 rpy2 在 Python 中保存 RData 工作区
【发布时间】:2014-09-23 00:48:38
【问题描述】:

另一个与 rpy2 相关的问题是关于将弃用的 rpy 代码转换为其 rpy2 等效项。在我的 python 脚本中,我有一个 for 循环语句,它只是将输入传递给一系列矩阵。最后,我将其保存到 .RData 工作区以再次加载并再循环 2 次。

在rpy中,保存文件是这样写的:

#Save resulting RDATA workspace (.RDATA file)
rpy.r.save_image()

我试过了,没有成功

import rpy2.robjects as ro 
from rpy2robjects import r

ro.r.save_image()

另外,我还有另一个具有此功能的 python 脚本,我也尝试过使用 ro.r,但没有成功:

#Write out success variable rpy.r("success = TRUE") rpy.r("save(success,file='success.RData')")

如果有人知道如何翻译上述“rpy.r”。对 rpy2 等效性的陈述,我将不胜感激。

【问题讨论】:

    标签: python r rpy2


    【解决方案1】:

    如果使用 rpy2 加载保存的对象,您可以只使用 Python 的酸洗(相当于 R 的加载/保存 - 参见 http://pymotw.com/2/pickle/): http://rpy.sourceforge.net/rpy2/doc-2.4/html/robjects_serialization.html

    否则试试:

    from rpy2.robjects.packages import importr
    base = importr('base')
    base.save_image(<arguments here...>)
    

    【讨论】:

    • 我正在使用 ro.r.load() 来加载保存的对象。该语法似乎工作正常。但它将图像保存到我遇到问题的磁盘。我阅读了 robjects 序列化,但我没有关注它(这里是菜鸟)...您能提供一个工作示例吗?
    • 完成(在答案中)。
    • 谢谢@lgautier。此外,我发现并成功测试的另一个途径(对于那些希望知道的人)是 rpy_classic 也会将 save_image() 转换为 rpy2。在 rpy2 中给猫剥皮的许多不同方法。 :)
    猜你喜欢
    • 1970-01-01
    • 2015-07-26
    • 2019-12-19
    • 1970-01-01
    • 2013-02-11
    • 2015-11-22
    • 2015-09-26
    • 2018-07-17
    • 1970-01-01
    相关资源
    最近更新 更多