Skip to content

Instantly share code, notes, and snippets.

@alekrutkowski
Created September 15, 2025 16:12
Show Gist options
  • Save alekrutkowski/d5d0890bb6e33fc98d90e8d68cddebcb to your computer and use it in GitHub Desktop.
Save alekrutkowski/d5d0890bb6e33fc98d90e8d68cddebcb to your computer and use it in GitHub Desktop.
Re-install missing R packages when you migrate from one R version to another (e.g. from 4.3 to 4.5)
### Usage example:
# installMissingPackages(4.3, 4.5)
library(magrittr)
getPackages <- function(version) {
stopifnot(is.numeric(version),
length(version)==1,
version==round(version,1))
.libPaths() %>%
.[1] %>%
sub('^(.+)/.+$',paste0('\\1/',version),.) %>%
list.dirs(full.names=FALSE,recursive=FALSE)
}
installMissingPackages <- function(version.old, version.new) {
packages_to_be_installed <-
getPackages(version.old) %>%
setdiff(getPackages(version.new))
message('\n',length(packages_to_be_installed),' packages to be installed.\n')
for (p in packages_to_be_installed)
if (!p %in% row.names(installed.packages())) {
message('\n====== Installing `',p,'` ======')
install.packages(p)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment