Introduction
One of the steps that I always do when I begin an R script is to check if all the needed packages are installed, and if not install them.
That way I know that the script won't crash on another computer because of a missing package (one less reason to crash :D).
Lately I've been thinking about the subject of code reuse and decided to transform my block of code in to an R function.
The Code
#«««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
#  script : loadlib.R
#  author : Vitor Chagas(VC)                last updated : 2013.08.19
#«««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
# install & load necessary packages ----
#<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
loadlibs <- function(...) {
  necessary <- as.vector(as.character(match.call()[-1]))
  installed <- necessary %in% .packages(all.available = TRUE)
  # install
  if (length(necessary[!installed]) >=1)
    install.packages(necessary[!installed])
  # update
  update.packages()
  # load
  for(pkg in necessary)
    library(pkg, character.only=TRUE)  
  rm(necessary, installed, pkg)
}
Final comments
Now I just save this code into a lib folder, and then 
use the following code to source every code file in there
sapply(list.files(pattern="*.R", path="lib", full.names=TRUE),
       source,.GlobalEnv)
