Quick Way of Installing all your old R libraries on a New Device

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())
write.csv(installed, 'installed_previously.csv')

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.


install.packages(toInstall)

That’s it. Save yourself the trouble installing packages one-by-one all over again.

installing_libraries_R

10 thoughts on “Quick Way of Installing all your old R libraries on a New Device

  1. 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

    Like

    • 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:

      toInstall176<-toInstall[1:176,2]
      toInstall176c<-as.character(toInstall176)

      Like

Leave a reply to Jason Miller Cancel reply