之前已经写过一篇:igraph更新,让monocle报错了。
时间已过半年,他们还是没有解决这个问题。受苦最多的应该是我吧!我的学生搞不定就会问我呀!他们就不能更新一下让我少费口舌吗!唉~他们不更,让我来吧。
虽然解决办法就是一句代码但是操作起来还是有很多细节。现在给大家一个更细节的教程!
1.打开一个新的Rstudio窗口,避免igraph和monocle已经加载影响安装。
2.删除新版本的包,右下角搜索,点❌删除
3.检查是否已有rtools
pkgbuild::find_rtools()
如果没有对应版本的rtools,是这样的提示:
WARNING: Rtools is required to build R packages, but no version of Rtools compatible with R 4.5.0 was found. (Only the following incompatible version(s) of Rtools were found: 4.4.6414)
Please download and install Rtools 4.5 from https://cran.r-project.org/bin/windows/Rtools/.
就是要去安装正确版本的rtools。提供西湖大学的rtools下载地址
https://mirrors.westlake.edu.cn/CRAN/bin/windows/Rtools/rtools45/files/rtools45-6608-6492.exe
安装完后,代码返回结果会变:
pkgbuild::find_rtools()
## [1] TRUE
install.packages("https://mirrors.westlake.edu.cn/CRAN/src/contrib/Archive/igraph/igraph_2.0.3.tar.gz",repos = NULL,type = "source")
理论上可以顺利安装。
如果是mac的话不需要检查rtools,是要从CRAN上下载安装3个软件,见:
方法一里,如果有了正确rtools,还是报错,可能是一些非常细节的不兼容问题。不用去解决了,可以用我已经编译好的包。
注意:这个方法不适用于所有的包,有一些会出现不兼容,碰巧这个包没有不兼容才能这样做。另外,我提供的包是windows编译的,只有windows才可以复制我的,mac和linux都不行哦。
使用方法是:
1.运行代码,查看R包安装路径
.libPaths()
返回结果类似这个,看自己的,不要抄我的。
2.把解压后的文件夹放在安装路径里
打开第一个路径的文件夹,把我提供的igraph.zip解压,解压得到的igraph文件夹复制到上面的路径。
3.重启Rstudio,检查版本
packageVersion("igraph")
## [1] ‘2.0.3’
说明已经搞定。如果报错说明上述操作有错误,仔细检查下。
我们要安装旧版本的igraph,是因为旧版本的“nei”函数在新版本中写为了“.nei”,所以我找到了monocle的源码包,把他函数源代码里的nei全部替换成了.nei,这样就不需要装旧版本了。
这个方法适用于任何系统,windows mac linux都可以。
新包的装法是:
把我提供的monocle.zip放在工作目录下,运行:
devtools::install_local("monocle.zip",upgrade = F)
即可安装。注意,这个方法不需要旧版本igraph,直接install.packages装igraph即可,省掉无数麻烦。