Skip to content

Instantly share code, notes, and snippets.

@arcaravaggi
Last active February 10, 2026 16:48
Show Gist options
  • Select an option

  • Save arcaravaggi/20acc42e3e245cc268a95269de024b2d to your computer and use it in GitHub Desktop.

Select an option

Save arcaravaggi/20acc42e3e245cc268a95269de024b2d to your computer and use it in GitHub Desktop.
Update R and migrate R packages to new installation from within the console
#From https://stackoverflow.com/questions/1401904/painless-way-to-install-a-new-version-of-r
# Run in the old version of R (or via RStudio)
setwd("C:/Temp/")
packages <- installed.packages()[,"Package"]
save(packages, file="Rpackages")
# INSTALL NEW R VERSION
if(!require(installr)) { install.packages("installr"); require(installr)} #load / install+load installr
# See here for more on installr: https://www.r-statistics.com/2013/03/updating-r-from-r-on-windows-using-the-installr-package/
# step by step functions:
check.for.updates.R() # tells you if there is a new version of R or not.
install.R() # download and run the latest R installer
# Install library - run in the new version of R. This calls package names and installs them from repos, thus all packages should be correct to the most recent version
setwd("C:/Temp/")
load("Rpackages")
for (p in setdiff(packages, installed.packages()[,"Package"]))
install.packages(p)
# Installr includes a package migration tool but this simply copies packages, it does not update them
copy.packages.between.libraries() # copy your packages to the newest R installation from the one version before it (if ask=T, it will ask you between which two versions to perform the copying)
@andremicc
Copy link

Great, thanks, it worked well for all CRAN packages. Maybe worth to add to the script the following 2 lines if Bioconductor packages also need to be reinstalled:
for (p in setdiff(packages, installed.packages()[,"Package"]))
BiocManager::install(p)

Cheers

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment