我们在加载之前安装的R包时,有时会出现加载失败的情况。常规做法是remove.packages(""),然后重新安装,但是有时候会出现安装失败的情况,如下:
1. 针对not writable的问题,可能是安装包路径问题。可以用.libPaths()查看以下当前安装路径有哪些,针对指定安装路径,如本例子中'lib = D:/Program Files/R-3.6.1/library' is not writable的情况,可以使用install.packages("rlang",lib="你想安装的路径")。
但是这种办法每次都要指定安装路径的话太麻烦,这个时候需要用.libPaths("路径A")命令,将你想安装的包的路径设置为默认路径。
2.针对not avaliable 的问题,有几种解决方法。
a. 寻找其他安装来源:github及bioconductor,
从github上安装包
install.packages("devtools")
library(devtools)
devtools::install_github('lchiffon/REmap')
#q前为github的用户名,后为包名
但用户名很难记住,这个时候有个githubinstall包,可以直接安装。
githubinstall
包提供了一种类似于install.packages()
的方式,只需包名即可安装R包。
#install.packages('githubinstall') #已发布至CRAN
library(githubinstall)
githubinstall('AnomalyDetection')
从bioconductor上安装包
options(BioC_mirror="http://mirrors.ustc.edu.cn/bioc/") #设置镜像站
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager") #安装管理工具包BiocManager
BiocManager::install() #查看是否安装成功
BiocManager::install("org.Hs.eg.db") #生物注释数据库
BiocManager::install("clusterProfiler") #KEGG分析支持包
b. 如果上述方法都不管用,需要检查一下你的镜像配置。Tools--global options--Packages,镜像改为离你IP地址最近的镜像地点。
我是回国了之后没改,镜像地址一直是国外的,R包加载出错时搜索了各种方法但都走不通,最后想把软件卸载的前一秒突然想到了这个问题,导致绕了很多弯路。