无法使用R在GoogleColab中安装特定软件包

rm5edbpk  于 2022-12-30  发布在  Go
关注(0)|答案(3)|浏览(236)

我正在准备一份报告给我的同事和学生。我认为最好的方法是通过Google Colab。我的分析是使用R和CRAN上的一些软件包进行的。
I am using a Jupyter Notebook with R kernel. I used the followinf link to create a Notebook with netive R kernel: https://colab.research.google.com/notebook#create=true&language=r. As you can see as follows, its running R.

a <- 1
print(a)

然而,当我尝试安装exactextractr包时,我得到了以下错误:

install.packages("exactextractr")

输出:

Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)

also installing the dependencies ‘proxy’, ‘e1071’, ‘wk’, ‘sp’, ‘terra’, ‘classInt’, ‘s2’, ‘units’, ‘Rcpp’, ‘raster’, ‘sf’

Warning message in install.packages("exactextractr"):
“installation of package ‘units’ had non-zero exit status”
Warning message in install.packages("exactextractr"):
“installation of package ‘sf’ had non-zero exit status”
Warning message in install.packages("exactextractr"):
“installation of package ‘exactextractr’ had non-zero exit status”

未安装程序包:

library(exactextractr)

输出:

Error in library(exactextractr): there is no package called ‘exactextractr’
Traceback:

1. library(exactextractr)

这是什么问题?

wkftcu5l

wkftcu5l1#

在一个单元格中执行此操作- R Colab不直接支持sudo。

system('sudo apt install libudunits2-dev')

那么这个应该可以用(我试过了成功)

install.packages("exactextractr")
b1zrtrql

b1zrtrql2#

您要安装的某些软件包(exactextractr,terra,sf,units)具有系统依赖项。您可以在这些软件包(terra为here)的CRAN页面的“系统要求”下看到这一点。
在这种情况下,您需要具有GDAL、GEOS、PROJ和udunits-2

sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable
sudo apt-get update
sudo apt-get install libudunits2-dev libgdal-dev libgeos-dev libproj-dev

这基本上就是R2 evans在评论中所建议的。而且在我心目中毫无疑问,他所说的是正确的。
有关安装这些包的更多指导,请参见github页面。Here代表“terra”。
此外,尝试逐个安装依赖项,以便更清楚问题所在。
例如

install.pacakges(‘proxy’)
install.pacakges(‘e1071’)
install.pacakges(‘wk’)
install.pacakges(‘sp’)
install.pacakges(‘terra’)

等等。

6ie5vjzr

6ie5vjzr3#

因为GoogleColab的Linux变体是Ubuntu,你也可以利用r2u,它带来了大约20,000个 * 二进制 * CRAN包 ,这些包对Ubuntu有完全的依赖性。
有一个快速的gif in this tweet演示(因为SO限制了图像大小)--在一个容器中从“空白”开始的所有内容总共需要17 s,只有R,并设置了r2u。这可以在标准x86_64(即Intel或AMD)上的任何Ubuntu系统中工作:笔记本电脑、台式机、服务器、云、持续集成......给予看吧--正如演示所示,它可以通过 * 来自R的单个install.packages("exactextractor")正确安装!

相关问题