在jupyternotebook中在R和Python之间共享变量

时间:2019-04-25 02:57:25

标签: r jupyter-notebook python-3.6 rpy2

如何将R变量传递给Python?

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

1 个答案:

答案 0 :(得分:3)

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

%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笔记本中,您将获得Xsdxxbar作为输出。您可以通过运行以下代码检查它们:

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

有关R magic的更多信息,请参见here

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