在 jupyter 笔记本中的 R 和 Python 之间共享变量

Share variables between R and Python in jupyternotebook

如何将R变量传递给Python?

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

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

%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 在评论中所暗示的那样。