如何在 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?

Colaboratory:我可以访问我的 Google 云端硬盘文件夹和文件吗?

使用Google Colab训练神经网络