在 Google Colab 中,如何使用 importr 导入 car、mtcars 等包?

In Google Colab, How to Import Package Like car, mtcars Using importr?

我想做什么?

我试图使用 car R 包的 VIF 函数计算 VIF(方差 Inflation 因子)。在 python 中,要导入汽车包,我使用了 rpy2importr 函数,如下所示。

from rpy2.robjects.packages import importr
car = importr('car')

然后,发生了什么?

然而,运行 Google Colab 中的代码后,我得到了以下错误。

PackageNotInstalledError: The R package "car" is not installed.

我明白是说 car 包没有安装。

那么,我的问题

在Google Colab中,我不需要安装Keras、Pandas等任何包。事实上,我不需要安装stats包(使用via rpy2) of R。那么,为什么我需要安装像carusdmmtcars这样的包才能通过rpy2使用?另外,我不知道如何安装这些包以通过 rpy2 库使用。

我是怎么解决的?

我在 Google 上搜索以找到在 Google Colab 中使用(通过 rpy2)这些包(例如 carmtcars)的方法.但是,我没有找到方法。可以注意到,我可以在 Jupyterlab Notebook 中通过 rpy2 使用这些包(例如 usdmcar)(安装后)。但是,我想在 Google Colab 中使用这些包。

我们将不胜感激任何类型的帮助!

在 colab 中使用以下代码进行 pip 安装。

!pip 安装包名

为什么?因为 R 可以安装或不安装额外的软件包。显然 Google Colab 包含 R 的最小安装,仅包括内置的 R 包,例如 baseutilsstats 等。重新迭代,这些包默认情况下是 R 的一部分(不在 CRAN 上)。为了方便起见,安装 R 时获得的任何其他包都是额外的奖励;例如在 Ubuntu 中你有 r-baser-recommended;通常一个人会同时获得两者,但是缺少 space 的系统管理员可能会决定只提供前者。参见 Difference between r-base and r-recommended packages

如何? 您需要安装它:

from rpy2.robjects.packages import importr

utils = importr('utils')
utils.install_packages('car')

devtools(R 包)针对 GitHub 回购的替代解决方案,

from rpy2.robjects.packages import importr

utils = importr('utils')
utils.install_packages('devtools')
devtools = rpackages.importr('devtools')
devtools.install_github("xxx/xxx")

我知道这个问题已经有一年了,但我刚才遇到了同样的问题,我想出了一种在 Colab 笔记本中安装 car 的方法:

一个大问题是 R 在 Colab 笔记本中的错误消息不是很及时。对我来说,问题是两个有问题的依赖项,即 nloptr-package 和 gsl-package,我必须通过大量的反复试验才能找到它们。

最后,我不得不从源代码手动安装 nloptr 1.0.4 版和 gsl 1.2-19 版。这意味着您必须从 https://cran.r-project.org/src/contrib/Archive/ 下载这两个档案,将它们复制到您的 Google 驱动器,然后安装。

我应该指出,我正在通过 cell magic 和 rpy2.ipython 同时使用 Python 和 R。所以在这种情况下,我必须在每个使用 R-code 的笔记本单元格前加上 %%R.

另请注意,您必须事先将 Google 驱动器安装到 Colab(在常规 Python 单元中)才能从源安装 R-package。将两者放在一起,您会得到:

%load_ext rpy2.ipython
from google.colab import files, drive
drive.mount('/content/drive')

然后您可以从源安装 nlopregsl,最后从 CRAN 安装 car

%%R
install.packages("drive/MyDrive/nloptr_1.0.4.tar.gz", repos = NULL, type = "source")
install.packages("drive/MyDrive/src/gsl_1.2-19.tar.gz", repos = NULL, type = "source")
install.packages("car", repos = "https://cloud.r-project.org")