日常瞎掰
R做为分析数据的工具可以说非常的好用,而它的好用源于其拥有相当多的可扩展包,让你可以轻松完成复杂的分析任务。真的拥有“包”治百病的能力!不过,这么多的包虽然好用,但有时这也是麻烦的根源。由于包之间的依赖关系相当复杂,有的包需要依赖特定版本其他的包,即使当前安装好了包,可是日后安装别的包可能会更新之前安装的包的依赖环境,这也会造成前面安装的包无法正常使用,所以一般我们安装包的时候尽量选择不要更新依赖的包。
clusterProfiler
clusterProfiler这个包大家应该都不陌生,这里就不在介绍了,用它来做GO、KEGG、GSEA真的很方便,用过都说好!虽然好用,但它也逃不过其他包会遇到的问题,即依赖环境的改变导致包不可使用。这不,最近准备用其做富集分析,既然出现了加载错误,之前用还是好好的,怎么就出问题了呢?转头一想,我们用的是公共集群,应该是维护人员给其他人安装包时更新了clusterProfiler依赖的包,那只能根据原因来解决问题了。
网上一搜报错信息,遇到同样问题的人还挺多的,瞬间就安心了,问题出在rvcheck的本版不对,clusterProfiler无法正常调用里面的函数,知道问题所在那就好办了,直接安装一个低版本的rvcheck包就可以了:
install.packages('devtools')
require(devtools)
install_version("rvcheck", version = "0.1.8", repos = "http://cran.us.r-project.org")
还别说,网上给的解决方法还真挺好用,到此clusterProfiler又可以正常使用了。
结束语
R包的依赖关还真没有一步到位的解决方法,不过可以通过人为来管理。比如,如果遇到A、B两个包同时依赖另外一个C包,但两个包依赖的C版本互相不兼容时,那么,此时我们就可以将其中一个版本的C安装到不同library
目录里,然后通过.libPaths()
指定优先查找路径的方式即可解决。