安装新版本的 R 后恢复所有 R 包?

标签 r github repository cran install.packages

当你在做 R更新,重新安装和更新以前安装的所有软件包的最佳方法是什么 R版本当您的某些包裹在 CRAN 上时但其余的都在 github (或其他来源)?
过去,我关注了this方法:
打开旧版R (例如 R 3.6 )并复制所有已安装的软件包:

installed <- as.data.frame(installed.packages())
#save a copy
write.csv(installed, 'previously_installed.csv')
然后安装并打开R的新版本(例如 R 4.1 ),读入旧的包名并安装(默认: CRAN ):
previously_installed <- read.csv('previously_installed.csv')
package_list <- as.character(previously_installed$Package)
package_list

install.lib <- package_list[!package_list %in% installed.packages()]   
for(lib in install.lib) install.packages(lib, dependencies = TRUE)
这非常有效,但只会安装 CRAN 上的软件包所以所有仅在 github 上的包不会安装。有没有办法从 github 自动安装这些包?
你可以找出哪些包没有安装(例如剩余的 github 包):
git_packages_not_installed <- install.lib[!install.lib %in% installed.packages()] 
我认为您需要知道作者姓名才能安装所有 github包,所以我不确定如何自动执行此操作(例如 devtools::install_github("DeveloperName/PackageName") 。我知道您可以提供两个存储库选项,但我不确定这个 helps 或查看 here
在这种情况下,最佳实践是什么?
谢谢

最佳答案

如果您只使用 CRAN 包,我的建议将类似于@CaptainHat 的建议,但有一个额外的步骤:首先将所有旧包复制到新位置,然后调用 update.packages(checkBuilt = TRUE, ask = FALSE) .这将更新为不兼容的早期 R 版本构建的那些。(只复制那些不存在的。如果你复制基础包,那会破坏 R。)
不幸的是,它不知道如何更新您从 Github 安装的软件包。我相信remotes::update_packages()应该能够处理这些,但我从未真正尝试过。

关于安装新版本的 R 后恢复所有 R 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65817504/

相关文章:

sql - R 中的 Copy_to 导致日期被转换为数字列

java - 我收到错误“远程 URL 测试失败 : protocol 'git clone HTTPS ' is not supported"when i enter the url field

git - 如何删除对 git 的提交

repository - 快照、候选发布和发布之间有什么区别?

r - 通过 apply R 使用模拟

R 无法在 centos 6.5 上安装软件包

rgb() 与 R 中的 ggplot2

github - SonarQube jenkins 插件对于 URL : https://api. github.com/user 返回 "Server returned HTTP response code: -1, message: ' null'”

c# - 在 EF Core 中更新数据的更好方法是什么

svn - 当 --quiet 时, checkout (co) svn 上的项目是否更快?