vlambda博客
学习文章列表

R语言 | 更新R语言你不知道的事

 有评论说安装了新版R语言之后还要对应安装新的R包,很麻烦。我想这也许是很多人不愿更新R语言版本的一个重要原因。对此,说几点我个人的看法:

1、我其实也不愿意频繁更新R软件,因为某个时期的脚本都是基于该版本完成的,稳定,所以没必要更新R。甚至不到迫不得已,我连包都不更新,因为谁知道新版的包里是不是改动的什么参数,导致之前的脚本不能用或还需要重新调整呢?

2、所以为了寻求稳定,并不建议频繁更新R软件及R包,但 R v3.6.3 不一样,我选择直接更新,原因在  中已经讲到。

3、一般软件都会有很好的向下兼容性,比如高版本普遍能很好的支持低版本中的功能,但R比较特殊,所以这也是为什么很多人的电脑上会安装多个版本的R。

4、包的版本是跟着R走的。新版的R里会有旧版R中不存在的R包,我们要用它就必须更新R,不要指望着用低版本R执行新版包,暂且不说你费了大力气还未知能不能安装的上,后续的bug也会超出你的想象。而随着R版本的更新,很多R包也会被淘汰,所以,新版的R语言就无法更好的支持这些包,同样不要指望着用高版本R安装/执行旧包,不如多安装几个版本的R,或者找到一些功能类似的R包使用。

5、你或多或少会遇到在同一个电脑上安装多个版本R的问题。windows下是可以共存的,且各版本R中的包也不冲突,用哪个版本的R,包就会安装在相应版本目录下;且有各个版本相应的图标,直接用哪个点开哪个就行。而mac下有点不一样,只能存在一个版本/一个图标,所以需要在安装的时候注意不要覆盖安装,参考:

如果不习惯在命令行中操作,mac下也有可视化界面的转换R版本的小工具:

https://mac.r-project.org/RSwitch-1.2.dmg

6、大版本的R更新,比如从R v3.6.2更新至 R v3.6.3,实际上并不涉及到所有R包的重新安装,之前安装的仍然存在并且能使用。当然,如果你想一次性更新R包也是可以的,在Rstudio中:Tools -> Check for Package Updates… 即可选择更新一些特定的包,或者全部的包:

R语言 | 更新R语言你不知道的事

或者在R会话窗口中:

 
   
   
 
  1. # list all packages where an update is available

  2. old.packages()


  3. # update all available packages

  4. update.packages()


  5. # update, without prompts for permission/clarification

  6. update.packages(ask = FALSE)

7、很多人说R包安装困难,其实是没找对方法, install.packages() 不是万能的,也并不需要不停的调用它去安装R包,你需要一个,人家都帮你完成了,用就完了!安装困难的另一个原因,是国内因为一些你懂得的原因并不能很顺利的使用外网,而国内就有所有R包的镜像文件,所以从国内的这些镜像源中下载R包,速度飞起,你只需要...而已!



本期相关·往期精彩