如何将R变量传递给Python?
在jupyternotebook中,我使用%reload_ext rpy2.ipython
在一个音符中使用R和Python。我知道如何通过使用python变量传递给R
%%R -i xxx
将python变量xxx传递给单元格中的R,但是如何将R变量传递回python?从技术上讲有可能吗?
答案 0 :(得分:3)
以下Jupyter魔术代码演示了如何使用R
计算1 + 2 + 3并将结果保存到变量rvar
中,然后将其传递给Python。选项-o rvar
指定对于Python环境,变量rvar
是output
所必需的。
%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
获取对象。