我正在使用Mac OS Catalina,PyCharm和Jupyter笔记本。我正在尝试从python代码中传递一个带有%%R的变量
import rpy2.rinterface
%load_ext rpy2.ipython
print(rpy2.__version__)
v=2
%%R -i v
print(v)
我收到此错误:
UsageError: Line magic function `%%R` not found.
蟒蛇 3.7.5 RPY2 3.2.2 R 3.5.1 此错误的原因可能是什么,我该如何解决它?
%%R
是一种细胞魔法,而不是线条魔法。您需要将其放置在新单元格中。在 PyCharm 中,单元格是使用注释标记创建的#%%
。在 PyCharm 环境中的正确用法是:
#%%
%load_ext rpy2.ipython
v = 2
#%%
%%R -i v
print(v)
细胞魔法以百分之二的符号(%%cell_magic_name
(开始,线魔法以百分之一的符号(%line_magic_name
(开始。您的错误消息表明您尝试在与单元格开头不同的位置使用单元格魔术 - 并且您的代码段没有(特定于 PyCharm(单元格分隔符来确认这种情况。
rpy2 提供了(同名的(单元格和行 R 魔法(% 符号的数量是唯一的区别(,但单元格魔术必须放在单元格的最开头 - 该单元格中的代码将被解释为 R。
在尝试使用"R magic"之前,请考虑使用%load_ext rpy2.ipython
加载相关的Jupyter扩展 (见 https://rpy2.github.io/doc/v3.2.x/html/interactive.html#usage(
如果只使用 Jupyter,只需确保运行
%%R -i v
print(v)
在单独的单元格中,并且不要在%%R
上方添加任何代码 - 甚至#注释。
所以正确的用法是:
单元格 1:
%load_ext rpy2.ipython
v = 2
单元格 2:
%%R -i v
print(v)
如果您将所有内容都放在同一个单元格中,它将不起作用。
这不起作用:
%load_ext rpy2.ipython
v = 2
%%R -i v
print(v)
UsageError: Line magic function `%%R` not found.
我认为原因与此处解释的相同。