【紧急通知】下载R包却联网失败?初学者的痛

2020-04-14 15:33:18 浏览数 (1)

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))
})

0 人点赞