Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Install and load multiple R packages at once
# ipak function: install and load multiple R packages.
# check to see if packages are installed. Install them if they are not, then load them into the R session.
ipak <- function(pkg){
new.pkg <- pkg[!(pkg %in% installed.packages()[, "Package"])]
if (length(new.pkg))
install.packages(new.pkg, dependencies = TRUE)
sapply(pkg, require, character.only = TRUE)
# usage
packages <- c("ggplot2", "plyr", "reshape2", "RColorBrewer", "scales", "grid")
DaveInga commented May 9, 2015

Been looking for this function for awhile - Thanks!

rizwaan commented Jul 1, 2015

Saved my day. Thanks

Useful function. Thanks!

b-long commented Sep 11, 2015

Wait a minute... Is this really not in the core ?

Thanks for providing it! 😃 :octocat:

rentrop commented Oct 1, 2015


Awsome Steven

asatito commented Jan 13, 2016

Thanks! Pretty useful

Thank you very much! Super useful.

Hello stevenworthington,
I am not used to R, i am unix administrator. Could you please help to execute r packages in one shot. ( very Urgent)
As i dont have internet to the server, so cran not possble. I download the files locally and perform by this way in R console,

install.packages("/tmp/R_binaries_gz/Rsolnp_1.16.tar.gz", repos=NULL, type="source")

i have to change the package name and execute it manually for the rest of the package.

Thanks in Advance :)

Using R 3.2.3 on linux. The if (length(new.pkg)) test is always returning true, so the packages are all being reinstalled even when not necessary.

Espanta commented Apr 23, 2016 edited

You can check and use lubripack package which is an s3 package on github. It is a bit easier and robust to use. github/espanta/lubripack -> here

MatthewSchumwinger commented May 5, 2016 edited

Just what I need after upgrading to latest version of R. Good stuff. Thank you.

Thanks for this ! I honestly use this in all my R!

Thanks a lot!

Thanks! Huge help

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