如何在 Google Colaboratory 中使用 R?
Posted
技术标签:
【中文标题】如何在 Google Colaboratory 中使用 R?【英文标题】:How to use R with Google Colaboratory? 【发布时间】:2019-07-02 20:46:01 【问题描述】:Google Colaboratory 支持 Python 2.7 和 3.6 版
前段时间我看到了一个如何在 Colab 中使用 Swift 的示例。
今天正好跑了
!jupyter-kernelspec list
并且发现了一个新内核:IRkernel
Available kernels:
ir /usr/local/share/jupyter/kernels/ir
python2 /usr/local/share/jupyter/kernels/python2
python3 /usr/local/share/jupyter/kernels/python3
swift /usr/local/share/jupyter/kernels/swift
现在是否也可以在 Colab 中使用 R?安装 R 内核不麻烦?
【问题讨论】:
【参考方案1】:是的。
对于新的 R-notebook,请使用 this link。 (简写为colab.to/r)
您可以从 IRkernel 演示中学习,例如demo.ipynb
在您的 Google 云端硬盘中保存一份副本,然后根据需要进行任何更改。
还有 2 个演示:
Display.ipynb 展示了如何显示 html、图像。 Comm_Demo.ipynb 展示了如何在 R 和 javascript 之间进行通信。在IRkernel Github查看更多详情。
【讨论】:
所以每次想在 Google Colab 上运行 R 时都应该使用它?!运行它确实会返回一些警告(关于非 Google 授权)。安全吗? 以及如何安装 R 库? 调用install.packages("wordcloud")
安装wordcloud库为例。
每次加载notebook都要重新安装包吗?
@Nathan 没错。 ?【参考方案2】:
如果您想同时使用 Python 和 R,可以对某些单元格使用 R 魔法。
# activate R magic
%load_ext rpy2.ipython
然后,每当您想使用 R 时,请以 %%R
开头的单元格
%%R
x <- 42
print(x)
更多详情rpy2 documentation
【讨论】:
你不需要运行import rpy2
运行load_ext
魔法就足够了
好的,那我拿出来
我完全明白使用魔法命令总比没有选项好,但你必须承认,如果你想在整个笔记本中使用 R,我们必须添加 % 有点疯狂%R 逐个覆盖每个代码单元格的顶部。
只有当您想将一些 R 混合到 Python 笔记本中时,此答案才适用。如果您主要写 R,请使用我上面的第一个答案。
另外,我在 Colab 中使用这种方法安装软件包时遇到了麻烦。我想安装一个包,从该包中调用一个函数,然后在 Python 中处理结果。对于某些软件包,它可以工作,而对于某些软件包则不能。我收到依赖项错误,例如installation of package ‘Rmpfr’ had non-zero exit status
【参考方案3】:
在浏览器中打开此链接以使用 R Kernel 创建一个新笔记本
https://colab.research.google.com/notebook#create=true&language=r
【讨论】:
【参考方案4】:更新:这不再有效(2020 年 7 月)。
以上答案的链接直接指向 R 笔记本,您可以在 R 或 python 之间进行选项更改。奇怪的是,谷歌就这样改变服务。因此,*** 不是一个很好的平台来推广由利润贩卖/数据销售公司创建的工具。
旧答案:
到目前为止,如果您单击菜单栏上的Runtime
,然后选择Change Runtime Type
,您可以在R 或Python 之间进行选择。
【讨论】:
当我们在新笔记本中点击更改运行时类型时,我们只需更改硬件加速器选项即可。有什么建议吗? 看来 google 删除了更改内核的选项。让我四处挖掘,然后回到它。 非常感谢。看来 Google 正在强迫我们在 google colab 中使用 python。【参考方案5】:为了扩展之前的答案,以下是在 R 和 Python 内核之间移动数据帧的方法,以便您可以在同一个笔记本中同时使用两者(例如,如果您想使用 Pandas 加载数据,请使用R 包,然后用 Bokeh 绘制)。
# Pandas dataframe to R data frame
!pip3 install rpy2
%load_ext rpy2.ipython
%R -i df
# R data frame to Pandas dataframe
%R seq.data <- read.delim('sequence.index', header=TRUE, stringsAsFactors=FALSE)
seq_data = %R seq.data
【讨论】:
【参考方案6】:*****截至 2020 年 11 月 13 日星期五工作
在登录 colab 时转到此 URL https://colab.to/r,应该可以这样做。
您可以检查 R 是否在运行时 -> 更改运行时类型,但它应该已经设置好了。
安装谷歌驱动器:
install.packages("googledrive")
library("googledrive")
if (file.exists("/usr/local/lib/python3.6/dist-packages/google/colab/_ipython.py"))
install.packages("R.utils")
library("R.utils")
library("httr")
my_check <- function() return(TRUE)
reassignInPackage("is_interactive", pkgName = "httr", my_check)
options(rlang_interactive=TRUE)
并验证谷歌驱动器
drive_auth(use_oob = TRUE, cache = TRUE)
【讨论】:
我刚试了一下,效果很好。但是,我仍然无法安装我的驱动器。执行代码后,左侧面板上会出现“安装驱动器”驱动器图标,但单击它会在左下角显示“安装您的 google 驱动器仅在托管的 python 运行时可用”的通知。不知道有没有解决办法,会很有帮助的 嗨,@Nosey,你能解释一下安装驱动器的阶段吗?您仍然可以获取 url 以获取身份验证码吗?它返回“错误:无法获取 Google 凭据。您是否在非交互式会话中运行 googledrive?”。我没有看到 MTerry 提到的任何“安装驱动器”图标... @hamagust,看看这个文件是否存在?我的python 3.6目录是空的,python 3.7有这个路径。如果我将 3.6 更改为 3.7,它会安装库但我找不到我的文件。我想答案就在这里。有时间我会回来的。如果您解决了,请告诉我们。【参考方案7】:另一种快速的方法是将 colab 标题中的 postix、.ipynb 替换为 .r 示例:将 Untitled.ipynb 的名称更改为 Untitled.r,一切正常!
【讨论】:
我刚刚尝试使用正在工作的 .ipynb 笔记本这样做,但没有帮助...运行时是否必须自动更改?以上是关于如何在 Google Colaboratory 中使用 R?的主要内容,如果未能解决你的问题,请参考以下文章
如何在Python IDE中使用Google Colaboratory服务器作为python控制台?
如何在 Python IDE 中使用 Google Colaboratory 服务器作为 Python 解释器?
如何在 Colaboratory 中使用 Tensorboard
如何将onedrive安装到google colaboratory?