我正在尝试从R片段中获取一些数据到Azure Python 3 Jupyter笔记本(托管在http://notebooks.azure.com免费提供)。
我在Python 3笔记本中尝试了以下内容:
%load_ext rmagic
然后试图嵌入R:
%%R -o x
x <- 1
然后
x
我在这里得到Python错误:name 'x' is not defined
- 请参见下图。将R嵌入Python 3并使用Azure笔记本交换数据的正确方法是什么?
答案 0 :(得分:3)
@DmitryNogin,我成功地复制了这个问题。根据{{3}}下面的描述,您现在需要在jupyter笔记本中使用%load_ext rpy2.ipython
代替%load_ext rmagic
。
rmagic扩展已作为rpy2.interactive.ipython移至rpy2。
但是,当我在笔记本中尝试%load_ext rpy2.ipython
时,我遇到了一些其他错误。
ImportError: libRblas.so: cannot open shared object file: No such file or directory
我搜索了一个解决方案,该解决方案需要在Azure笔记本服务器上使用LD_LIBRARY_PATH
(我通过命令export LD_LIBRARY_PATH=/usr/lib64/MR0-3.3.0/R-3.3.0/lib/R/lib
找到的路径值)设置环境变量which R
。但是,主机Ubuntu操作系统未安装vi
或vim
且我不知道终端中sudo
的{{1}}密码,因此尽管解决方案可行对于笔记本服务器终端中的ipython,它不能让jupyter工作。
我的最终解决方案是使用笔记本电脑服务器的终端命令nbuser
。
然后,当您输入ln -s /usr/lib64/MR0-3.3.0/R-3.3.0/lib/R/lib/* ~/anaconda3_410/lib/
时,您将收到错误%load_ext rpy2.ipython
。您只需输入ImportError ..../libreadline.so.6: undefined symbol: PC
即可在import readline
之前解决问题。
最后,您可以为%load_ext rpy2.ipython
加载rpy2.ipython
并提供一些警告信息。
希望它有所帮助。