Sai*_*olu 41 python r ipython python-2.7 jupyter-notebook
是否可以在同一个Jupyter笔记本中运行R和Python代码.有哪些替代品?
以上3个选项中哪一个可靠运行Python和R代码片段(共享变量和可视化)或者是否有更好的选择?
uut*_*uut 41
对的,这是可能的!使用rpy2.
您可以使用以下命令安装rpy2: pip install rpy2
然后%load_ext rpy2.ipython在你的一个细胞中运行.(你只需运行一次.)
现在您可以执行以下操作:
Python单元格:
# enables the %%R magic, not necessary if you've already done this
%load_ext rpy2.ipython
import pandas as pd
df = pd.DataFrame({
'cups_of_coffee': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
'productivity': [2, 5, 6, 8, 9, 8, 0, 1, 0, -1]
})
Run Code Online (Sandbox Code Playgroud)
R细胞:
%%R -i df -w 5 -h 5 --units in -r 200
# import df from global environment
# make default figure size 5 by 5 inches with 200 dpi resolution
install.packages("ggplot2", repos='http://cran.us.r-project.org', quiet=TRUE)
library(ggplot2)
ggplot(df, aes(x=cups_of_coffee, y=productivity)) + geom_line()
Run Code Online (Sandbox Code Playgroud)
而且你会得到一个漂亮的数字来绘制python Pandas DataFrame中的数据.
Abh*_*mar 14
使用@uut的答案在python内核(在MacOS中)的jupyter笔记本中运行R,以下内容对我有用.
也%load_ext rpy2.ipython应该在之前%%R将其放在其上方的不同单元中,如图所示.
SoS 内核是另一种选择。
不知道它的性能如何,刚开始使用它。
SoS 内核允许您在同一笔记本中运行不同的语言,包括 Python 和 R。
这是一个带有Python 和 R 单元格的笔记本示例。
*更新:
在共享变量方面,可以使用魔法%use和%with. “SoS 自动在所有子内核中共享名称以sos开头的变量” 1。
前任。
R中的起始单元格:
%use R
sos_var=read.csv('G:\\Somefile.csv')
dim(sos_var)
Run Code Online (Sandbox Code Playgroud)
输出:
51 13
Run Code Online (Sandbox Code Playgroud)
切换到python:
%with Python3
sos_var.shape
Run Code Online (Sandbox Code Playgroud)
输出:
(51, 13)
Run Code Online (Sandbox Code Playgroud)
更新于2018年4月,
RStudio还推出了一个软件包:https : //blog.rstudio.com/2018/03/26/reticulate-r-interface-to-python/
为此,可以使用R降价笔记本(类似于jupyter笔记本)以不同的语言运行多个代码块。
在上一篇文章中,我说过对象的基本表示形式是不同的。实际上,这里是来自同一包的R和python的底层矩阵表示的更细致的讨论:https : //rstudio.github.io/reticulate/articles/arrays.html
旧帖子:
您将很难在同一笔记本中同时使用R和Python语法,这主要是因为两种语言中对象的基本表示形式不同。就是说,有一个项目确实尝试允许在同一笔记本中转换对象和不同语言:http : //beakernotebook.com/features
我自己没有用过,但是看起来很有希望