Rstudio中转换R版本后,如何调用R包

今天遇到一个非常棘手的问题,在用BiocManager安装一个R包clusterProfiler时,需要我把R包更新到4.0以上的版本。

if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")

BiocManager::install("clusterProfiler")

好吧,那我安装了R版本也在Rstudio上切换到了4.0版本


1623914701(1).png

但还是遇到了问题:

Error: package or namespace load failed for ‘clusterProfiler’ in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]):
不存在叫‘DO.db’这个名字的程辑包

而这个“DO.db”也安装不成功;

Error: package or namespace load failed for 'usethis':
package 'fs' was installed before R 4.0.0: please re-install it

这个问题看起来是我的library配置问题,用.libPaths查看一下


微信图片_20210617152741.png

并没有发现任何问题,这里第一个library是我的公共library,就是无论切换哪个版本的R,Rstudio都可以调用公共库里的R包,
1623914775(1).png

按理说,应该就不会存在像Package ‘#####’ was installed before R 4.0.0: please re-install it这样的问题,或者xx包是由某个R版本建造的不可以用之类的问题。
微信图片_20210617152807.png

连带着以前安装过可以用的ggplot2和devtools都用不了:


微信图片_20210617152815.png

经过了各种谷歌查看,结合多人经验以及自己思路的理清,才摸索出一条正确的道路
首先,我查看了系统环境变量中R_LIBS一系列的配置,我才发现只配置了R_LIBS_USER,当然如何配置公共R的library是很久以前配置的有点忘了,但估计是我的电脑出现系统环境变量配置问题后一不小心删除了另外两个。

Sys.getenv("R_LIBS")
Sys.getenv("R_LIBS_USER")
Sys.getenv("R_LIBS_SITE")

于是这里又在Windows系统环境变量里重新配置了一下如下所示


1623920357(1).png

在R里面确认一下


1623915884(1).png

配置完后还是不能加载公共库的包,是因为里面的包已经变了,因此需要更新一下里面的所有包

update.packages(ask = FALSE, checkBuilt = TRUE)

最后成功了,耶~!!


1623920660(1).png

今天又是无所事事,吐血的一天!!!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容