我們在加載之前安裝的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包加載出錯時搜索了各種方法但都走不通,最後想把軟件卸載的前一秒突然想到了這個問題,導致繞了很多彎路。