Kid*_*Kid 5 r rpy2 jupyter-notebook python-3.6
如何将 R 变量传递给 Python?
在 jupyternotebook 中,我习惯%reload_ext rpy2.ipython在一篇笔记中使用 R 和 Python。我知道如何通过使用将 python 变量
%%R -i xxxxxx 传递给单元格中的 R 来将 python 变量传递给 R,但是如何将 R 变量传递回 python?技术上可行吗?
以下 Jupyter 魔术代码演示了如何使用R来计算 1+2+3 并将结果保存在变量 中rvar,然后将其传递给 Python。该选项-o rvar指定该变量对于 Python 环境rvar是必需的。output
%R -o rvar rvar=1+2+3
Run Code Online (Sandbox Code Playgroud)
在另一个单元格上,您可以使用 Python 来操作该变量:
print(rvar) # [1] 6
print(rvar[0]) # 6.0
Run Code Online (Sandbox Code Playgroud)
对于更复杂的示例,具有多个输出变量:
%%R -o X -o sdx -o xbar
X=c(1,4,5,7);
sdx=sd(X);
xbar=mean(X)
Run Code Online (Sandbox Code Playgroud)
在 (Python) Jupyter 笔记本中,您将得到X、sdx、 和xbar作为输出。您可以通过运行代码来检查它们:
print('X:', X)
print('X[1]:', X[1])
print('sdx:', sdx)
print('xbar:', xbar)
Run Code Online (Sandbox Code Playgroud)
有关的更多信息可以在这里R magic找到。
或者,您可以使用%Rpull和%Rget从 获取对象rpy2。
编辑
更新了参考链接 ,如评论中 @lgautier 所暗示。