未找到行魔术函数“%%R”

Line magic function `%%R` not found

我正在使用 Mac OS Catalina,PyCharm 和 Jupyter notebook。我正在尝试从 python code

传递一个带有 %%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.

Python 3.7.5 rpy2 3.2.2 R 3.5.1 出现此错误的原因是什么?我该如何解决?

在尝试使用 "R magic" 之前,请考虑使用 %load_ext rpy2.ipython 加载相关的 Jupyter 扩展 (参见 https://rpy2.github.io/doc/v3.2.x/html/interactive.html#usage

%%R是细胞魔法,不是线魔法。你需要把它放在一个新的单元格中。在 PyCharm 中,单元格是使用 #%% 注释标记创建的。 PyCharm环境下的正确用法是:

#%%

%load_ext rpy2.ipython
v = 2

#%%

%%R -i v
print(v)

单元魔术以两个百分号 (%%cell_magic_name) 开头,线条魔术以一个百分号 (%line_magic_name) 开头。您的错误消息表明您试图在与单元格开头不同的地方使用单元格魔法 - 并且您的代码片段没有(PyCharm 特定的)单元格分隔符,这证实了这种情况。

rpy2 提供了(同名的)单元格和行 R 魔术(唯一的区别是 % 符号的数量),但单元魔术必须放在单元格的最开头 -此单元格中的代码将被解释为 R.

如果只使用 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.

我想原因和解释的一样