升级 R 后,我能否自动更新包?
升级 R 后,我能否自动更新包?
最近,Andrew Gelman对R的升级过程缺乏简便方法表示遗憾(在Windows上比Linux更为相关)。是否有人知道一个好的技巧来进行升级,包括安装软件和复制所有设置/包的过程?
评论中包含了这个建议,这是我最近使用的方法。首先安装新版本,然后在旧版本中运行以下代码:
#--在旧版本的R中运行
setwd("C:/Temp/")
packages <- installed.packages()[,"Package"]
save(packages, file="Rpackages")
接着在新版本中运行以下代码:
#--在新版本中运行
setwd("C:/Temp/")
load("Rpackages")
for (p in setdiff(packages, installed.packages()[,"Package"]))
install.packages(p)
在升级R之后,我能否自动更新包的问题是由于以下原因引起的:升级R后,旧的包可能不再兼容新版本的R,因此需要更新这些包以确保它们能够正常工作。
解决这个问题的方法是使用"installr"包。在Windows系统中,可以使用以下代码更新R和相关的包:
install.packages("installr") require(installr) updateR()
这样做的最佳方式是从RGui系统中进行。您的所有包将被转移到新文件夹中,旧的包将被删除或保存(您可以选择其中之一)。然后,一旦再次打开RStudio,它会立即识别到您正在使用更新的版本。对我来说,这个方法非常有效。
如果您安装了通过GitHub获取的包,上述方法可能不适用。需要采取其他措施来更新这些包。
需要注意的是,这个解决方案适用于Windows系统。
需要指出的是,这个解决方案似乎在Windows 10上不起作用。