Created
July 25, 2012 19:44
-
Star
(169)
You must be signed in to star a gist -
Fork
(72)
You must be signed in to fork a gist
-
-
Save stevenworthington/3178163 to your computer and use it in GitHub Desktop.
Install and load multiple R packages at once
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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") | |
ipak(packages) |
Thanks bro!
Thanks for this ๐
Just Awesome!!!! Thanks a lot
Thank you for this!
Awesome!!
Very useful function. Thanks for sharing this!
I love this function!! Made an edit to install and/or load GitHub packages
ipak_gh <- function(pkg){
new.pkg <- pkg[!(sub('.*/', '', pkg) %in% installed.packages()[, "Package"])]
if (length(new.pkg))
remotes::install_github(new.pkg, dependencies = TRUE)
sapply(sub('.*/', '', pkg), require, character.only = TRUE)
}
# Example
ipak_gh(c("lmullen/gender", "mtennekes/tmap", "jalvesaq/colorout", "timathomas/neighborhood", "arthurgailes/rsegregation"))
Another person happy thanks to you.
Thanks a lot.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I've been using this for a few years now and just though that it might be cool if there could be a version of this that uses
install_github
or any of thedevtools::install_
for packages as I find myself using this most often for my work.I will try and figure out how to do that but I don't have much time to dedicate to it which is why I am tossing the idea out here for anyone else to tackle if they think they can do it!
Agian, thank you @stevenworthington for speeding up my workflow with this function ๐
Cheers!
EDIT:
Well I procrastinated at work and made a version of this that does this now found here. I haven't tested it for options other than
install_method = "github"
andinstall_method = "base"
so feel free to check it out and change it as needed!