Jupyter notebook 找不到行魔术函数“%R%”

Jupyter notebook 找不到行魔术函数“%R%”,jupyter-notebook,pycharm,rpy2,Jupyter Notebook,Pycharm,Rpy2,我正在使用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. Python 3.7.5 rpy2 3.2.2 R 3

我正在使用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.
Python 3.7.5 rpy2 3.2.2 R 3.5.1
导致此错误的原因是什么?如何修复它?

在尝试使用“R魔术”之前,请考虑使用
%load\u ext rpy2.ipython加载相关的Jupyter扩展

(请参阅)

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

#%%

%load_ext rpy2.ipython
v = 2

#%%

%%R -i v
print(v)
单元格魔法以百分之二的符号开始(
%%Cell\u magic\u name
),行魔法以百分之一的符号开始(
%line\u magic\u 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)

我认为原因与解释的相同。

是的。这很奇怪,对吧?当我使用print(rpy2.\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。我只是不明白问题的实质是什么:(有没有办法测试出什么不起作用?在Linux上的PyCharm 2019.3(专业版)中测试了代码片段(使用
%load\u ext
),它按预期工作。你的PyCharm版本是什么?我的版本是rpy2:3.2.2 Python 3.7.5,R3.6.1。PyCharm是2019.3(专业版)唯一的区别是R。我的是3.5.1。我真的看不到任何有效的理由。我也尝试过卸载和安装东西,但它不会消失…你看到下面了吗?我更新了R并遵循上面的建议。现在问题解决了。非常感谢!!很高兴它有帮助!你可以帮助保持如此整洁。有一个g与rpy2!一起度过美好时光!。
UsageError: Line magic function `%%R` not found.