Windows电脑使用R语言有几个绕不过去的坑,就是管理员权限,中文用户名等等,所以我们开展R语言学习班,都需要重新发几次:Windows电脑使用Rstudio会有多少错误呢 ,有一个联网问题本来是疑难杂症,因为我们的讲师助教团队带了二十多场学习班才遇到过一次,也在生信技能树分享了BiocManager无法安装R包的经验,不就是修改options(download.file.method = 'libcurl'),还需要加上options(url.method='libcurl')。
但是最近接到大量初学者求助,R包安装困难,如下:
R包下载的时候联网失败
我们给出来的解决方案,仍然是;之前研发好的 url.method 这个配置的解决方案;
代码语言:javascript复制options(download.file.method = 'libcurl')
options(url.method='libcurl')
然后在Windows电脑里面R语言的安装R包和下载文件就OK啦。
但是我不能理解, 为什么之前的疑难杂症现在变成了流行病?不过,我们的讲师助教团队还是蛮用心的,一个个答疑和点对点指导,值得鼓励。
初学者使用我们的标准代码安装R包吧
使用管理员打开R哦,然后就
代码语言:javascript复制options()$repos
options()$BioC_mirror
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
options()$repos
options()$BioC_mirror
# https://bioconductor.org/packages/release/bioc/html/GEOquery.html
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("KEGG.db",ask = F,update = F)
BiocManager::install(c("GSEABase","GSVA","clusterProfiler" ),ask = F,update = F)
BiocManager::install(c("GEOquery","limma","impute" ),ask = F,update = F)
BiocManager::install(c("org.Hs.eg.db","hgu133plus2.db" ),ask = F,update = F)
如果你还报错,就看看周围有没有大神帮你解决吧!如果成功安装的R包,多次加载不会有警告信息也不会报错,如下:
成功加载
如果缺啥,就单独安装它,以此类推,直到全部成功为止。
缺啥,就单独安装它
进阶的批量安装R包代码是
代码语言:javascript复制# 把你需要安装的包,填写在 list.of.packages 这个向量里面即可
list.of.packages <- c( "stringr"
,"gplots"
,"ggplot2"
,"survival"
,"survminer"
,"stringr"
,"FactoMineR"
,"factoextra"
,"dplyr"
,"pheatmap"
,"stringr"
,"survival"
,"survminer"
,"survivalROC"
,"timeROC",
'RTCGA.miRNASeq','RTCGA','RTCGA.clinical')
list.of.packages
#checking missing packages from list
# 取补集
new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
new.packages
# 下面代码也是取补集
packToInst <- setdiff(list.of.packages, installed.packages())
packToInst
if(T){
lapply(packToInst, function(x){
BiocManager::install(x,ask = F,update = F)
})
}
lapply(intersect(list.of.packages, installed.packages()),function(x){
suppressPackageStartupMessages(library(x,character.only = T))
})