在 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
指定变量 rvar
是 output
到 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 中,您得到 X
、sdx
和 xbar
作为输出。您可以通过 运行 代码查看它们:
print('X:', X)
print('X[1]:', X[1])
print('sdx:', sdx)
print('xbar:', xbar)
可以找到有关 R magic
的更多信息 here。
或者,您可以使用 %Rpull
和 %Rget
从 rpy2
获取对象。
编辑
Updated reference link
正如@lgautier 在评论中所暗示的那样。
如何将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
指定变量 rvar
是 output
到 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 中,您得到 X
、sdx
和 xbar
作为输出。您可以通过 运行 代码查看它们:
print('X:', X)
print('X[1]:', X[1])
print('sdx:', sdx)
print('xbar:', xbar)
可以找到有关 R magic
的更多信息 here。
或者,您可以使用 %Rpull
和 %Rget
从 rpy2
获取对象。
编辑
Updated reference link 正如@lgautier 在评论中所暗示的那样。