Overview
最近在一台新的电脑上运行一个R
脚本时,报了一个很奇怪的错误。因为类似的脚本已经运行了很多次,所以很快就可以确定是电脑的R环境不兼容引起的问题。
问题描述
脚本在运行时需要载入caret
包,结果载入过程中报下面的错误:
Loading required package: gplots
Attaching package: ‘gplots’
The following object is masked from ‘package:stats’:
lowess
Loading required package: methods
Warning message:
package ‘gplots’ was built under R version 3.2.4
Loading required package: lattice
Loading required package: ggplot2
Error in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) :
there is no package called ‘recipes’
In addition: Warning messages:
1: package ‘caret’ was built under R version 3.2.5
2: package ‘lattice’ was built under R version 3.2.5
3: package ‘ggplot2’ was built under R version 3.2.5
4: replacing previous import by ‘plyr::ddply’ when loading ‘caret’
Error: package or namespace load failed for ‘caret’
Execution halted
别被上面的信息迷惑了,里面出现了ggplot2
和lattice
包,是因为这些包都是caret
的依赖包。caret
非常的大,有很多依赖包。看到上面的信息,第一时间会选择用install.packages("recipes")安装,但提示信息时recipes
不存在。
解决方案
查阅了一些资料后,发现caret
兼容的最低R语言版本为3.2.3
,然后我看了下我的R
语言版本:3.2.2
...
到R官网上,下载了一个3.3.3
,安装之后,重新装了一下需要的包,一切正常。
小结
如果安装的环境太老,有的时候还是会有一些不兼容的问题。所以如果出现了一些重大的版本,最好还是要更新一下,因为很可能后面的包就开始基于新的版本开发了。虽然我也不喜欢追求最新的,但也别太旧...