如何将R变量传递给Python?
在jupyternotebook中,我使用%reload_ext rpy2.ipython
在一个注释中使用R和Python。我知道如何通过使用%%R -i xxx
将python变量xxx传递给单元格中的R来将python变量传递给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笔记本中,你得到X
,sdx
和xbar
作为输出。您可以通过运行代码来检查它们:
print('X:', X)
print('X[1]:', X[1])
print('sdx:', sdx)
print('xbar:', xbar)
有关R magic
的更多信息,请访问here。
或者,您可以使用%Rpull
和%Rget
从rpy2
获取对象。