【问题标题】:Share variables between R and Python in jupyternotebook在 jupyter notebook 中在 R 和 Python 之间共享变量
【发布时间】:2019-09-14 09:45:49
【问题描述】:

如何将 R 变量传递给 Python?

在 jupyternotebook 中,我使用 %reload_ext rpy2.ipython 在一个笔记中使用 R 和 Python。我知道如何通过使用将 python 变量传递给 R %%R -i xxx 将 python 变量 xxx 传递给单元格中的 R,但是如何将 R 变量传递回 python?技术上可行吗?

【问题讨论】:

    标签: r jupyter-notebook python-3.6 rpy2


    【解决方案1】:

    以下 Jupyter 魔术代码演示了使用 R 计算 1+2+3 并将结果保存在变量 rvar 中,然后将其传递给 Python。选项-o rvar 指定变量rvar 是Python 环境所必需的output

    %R -o rvar rvar=1+2+3
    

    在另一个单元格上,您可以使用 Python 来操作该变量:

    print(rvar)      # [1] 6
    print(rvar[0])   # 6.0
    

    对于更复杂的示例,具有多个输出变量:

    %%R -o X -o sdx -o xbar
    X=c(1,4,5,7);
    sdx=sd(X);
    xbar=mean(X)
    

    在 (Python) Jupyter notebook 中,您会得到 Xsdxxbar 作为输出。您可以通过运行代码来检查它们:

    print('X:', X)
    print('X[1]:', X[1])
    print('sdx:', sdx)
    print('xbar:', xbar)
    

    更多关于R magic的信息可以在here找到。

    或者,您可以使用%Rpull%Rgetrpy2 获取对象。

    编辑

    Updated reference link 正如@lgautier 在评论中所暗示的那样。

    【讨论】:

    • 非常感谢您的回答,我想知道您在哪里看到这些说明?我应该如何在一个块中输出多个变量?感谢您的耐心等待
    • @swatchai:该文档早已过时,因为“R 魔法”已从 ipython 代码库中移出。您可能希望使用 rpy2.github.io/doc/v3.0.x/html/… 作为参考文档。
    猜你喜欢
    • 2016-06-26
    • 2018-04-25
    • 1970-01-01
    • 2019-08-03
    • 2020-04-08
    • 2012-10-27
    • 2020-09-11
    • 2011-09-14
    • 2013-07-26
    相关资源
    最近更新 更多