I recently bought a new laptop and began installing essential software all over again, including R of course! And I wanted all the libraries that I had installed in my previous laptop. Instead of installing libraries one by one all over again, I did the following:
Step 1: Save a list of packages installed in your old computing device (from your old device).
installed <- as.data.frame(installed.packages())
This saves information on installed packages in a csv file named installed_previously.csv. Now copy or e-mail this file to your new device and access it from your working directory in R.
Step 2: Create a list of libraries from your old list that were not already installed when you freshly download R (from your new device).
installedPreviously <- read.csv('installed_previously.csv')
baseR <- as.data.frame(installed.packages())
toInstall <- setdiff(installedPreviously, baseR)
We now have a list of libraries that were installed in your previous computer in addition to the R packages already installed when you download R. So you now go ahead and install these libraries.
Step 3: Download this list of libraries.
That’s it. Save yourself the trouble installing packages one-by-one all over again.
10 thoughts on “Quick Way of Installing all your old R libraries on a New Device”
But this method doesn’t work with github packages.
Oh yeah, thanks for pointing that out. I should have mentioned it. This approach pertains to CRAN only.
Another approach would be the use of my reinstallr package.
LikeLiked by 2 people
Nice! Have to try this out.
Thanks Calli! reinstallr worked great!
Even easier is using pacman. Not to mention the many other benefits of pacman. I teach all of my students to use it.
Have got to check this out!
Hello blogger, i must say you have high quality posts here.
Your website can go viral. You need initial traffic only.
How to get it? Search for: Mertiso’s tips go viral
[…] Às vezes, raramente, eu diria, há problemas com a atualização do R e você perde sua biblioteca (mesmo usando o installr, isso aconteceu recentemente comigo). Este blogueiro deu uma dica simples que pode ser interessante para se precaver. […]
LikeLiked by 1 person
Hi, I had 2 problems when running this script. First, I don’t see why the setdiff did not work in my case. So, I create a subset excluding those baseR packages. Second, the list “toInstall” was a data frame with many columns rather than a simple character vector. I had to save only the column with the package names into another object and then transform the class from factor to character for that obj. It worked then.
These were the 2 lines I added: