12. R studio/R 工具指南(十一:R 的更新与R 包的迁移)

2021-12-17 09:01:59 浏览数 (1)

目录:

  • R 包更新
  • R 更新

前言

虽然在09. R studio/R 工具指南(八:R 的版本控制) 我们提到过,有不同的R 的版本,并且可以通过一定的操作,在不同的系统下进行R 版本的无缝切换。

但是,如果我们想要直接更新R 呢?有的时候受制于容量的大小,不同的R 和不同R 下的包非常的占用我们的磁盘空间。

再或者,如果想要批量的更新所有的R 包到最新的版本呢?

这里就需要一些新的操作了。

更新R 包

可以尝试一下Y 叔叔写的rvcheck::update_all()会自动判断包的来源是cran 还是bioconductor 等。参见:https://cran.r-project.org/web/packages/rvcheck/

代码语言:javascript复制
> rvcheck::update_all()
upgrading CRAN packages...

  There are binary versions available but the source versions are later:
         binary source needs_compilation
processx  3.5.0  3.5.1              TRUE
spatstat  2.0-1  2.1-0              TRUE

更新R

WIN

发现网上有人使用的是installr(我们下载的包也叫updateR) 中的函数:

代码语言:javascript复制
updateR(fast=TRUE,cran_mirror="https://mirrors.ustc.edu.cn/CRAN/")

但读了一下updateR 这个包,发现其并不能设置镜像,而且竟然还是只能在mac os 上使用。

★查看了一下,发现updateR 和installr 这两个包分别对应了win os 与mac os 的两个系统。”

在win os 中,installr 还提供了copy.packages.between.libraries 包实现迁移。

mac

而在我的电脑上,updateR 无关顺利完成更新,而且其也无法设置镜像,完成更新后只不过下载了一个新版本的R 罢了!

再试试看手动下载R 和手动迁移包吧。有个方法:[https://stackoverflow.com/questions/13656699/update-r-using-rstudio]

这里我是因为updateR 函数总是失效,不得不采取的方法。

这里我直接是现将新版本4.0 下的library 目录中的包保存出来,接着直接将原本版本R 中的library 直接复制进去,接着再将本来的4.0 下的包(base 之类R 安装中自带的)再覆盖回去。

一切完成后,在新版本的R 中尝试调用安装的其他包:

代码语言:javascript复制
> library(maftools)
错误: package or namespace load failed for ‘maftools’:
 package ‘maftools’ was installed before R 4.0.0: please re-install it

报错了,提示说是版本不对。

这时候直接对目录中的 R 包进行更新:

代码语言:javascript复制
update.packages(checkBuilt=TRUE, ask = T)

接着就在后台放一阵吧~

但有时候基础包的更新函数却对Bioconductor和Github 上的包更新不是那么友好了:

代码语言:javascript复制
> library(hgu133plus2.db )
载入需要的程辑包:AnnotationDbi
载入需要的程辑包:stats4
载入需要的程辑包:BiocGenerics
载入需要的程辑包:parallel
Error: package or namespace load failed for ‘BiocGenerics’:
 package ‘BiocGenerics’ was installed before R 4.0.0: please re-install it
错误: 无法载入程辑包‘BiocGenerics’

像有些包还是会出问题。

我们还需要更新一下bioconductor 上面的包:

代码语言:javascript复制
BiocManager::install(version = '3.12') # 对应R4.0 版本

The downloaded binary packages are in
 /var/folders/sk/14xz_vl55jz8jcjm8lj1zdd00000gn/T//Rtmpq6nwTk/downloaded_packages
Installing package(s) 'airway', 'annotate', 'AnnotationDbi',
  'AnnotationFilter', 'AnnotationHub', 'Biobase', 'BiocFileCache',
  'BiocGenerics', 'BiocParallel', 'BiocStyle', 'BiocVersion', 'biomaRt',
  'Biostrings', 'biovizBase', 'BSgenome', 'BSgenome.Hsapiens.UCSC.hg19',
  'BSgenome.Hsapiens.UCSC.hg38', 'clusterProfiler', 'DelayedArray', 'DOSE',
  'enrichplot', 'ensembldb', 'exomeCopy', 'fgsea', 'geneplotter',
  'GenomeInfoDb', 'GenomeInfoDbData', 'GenomicAlignments', 'GenomicFeatures',
  'GenomicRanges', 'GEOquery', 'ggbio', 'GO.db', 'GOSemSim', 'graph',
  'GSEABase', 'GSVA', 'Gviz', 'impute', 'InteractionSet',
  'interactiveDisplayBase', 'IRanges', 'KEGG.db', 'limma', 'maftools',
  'org.Hs.eg.db', 'OrganismDbi', 'pcaMethods', 'preprocessCore', 'processx',
  'ProtGenerics', 'qvalue', 'RBGL', 'Rgraphviz', 'Rhtslib', 'Rsamtools',
  'rtracklayer', 'S4Vectors', 'SomaticCancerAlterations', 'SomaticSignatures',
  'spatstat', 'SummarizedExperiment', 'trackViewer', 'VariantAnnotation',
  'XVector', 'zlibbioc'
also installing the dependencies ‘downloader’, ‘MatrixGenerics’, ‘scatterpie’, ‘shadowtext’

直接使用Y 叔的包更新它们:

代码语言:javascript复制
> rvcheck::update_all()
upgrading CRAN packages...

  There are binary versions available but the source versions are later:
         binary source needs_compilation
processx  3.5.0  3.5.1              TRUE
spatstat  2.0-1  2.1-0              TRUE

装R4.0 的包内容又渐渐鼓起来啦~

0 人点赞