The lyf so short, the craft so long to lerne.

– Geoffrey Chaucer

This book serves as a personal collection of

  • tools for package development,
  • good practices for programming,
  • and most frequently used packages.

The material treated here certainly does not cover all of R, but rather serves as list of essential things related to programming in R that I find useful to know. The document is partly opinionated and subjective, so feel free to open up an issue if you feel some parts should be clarified or reformulated.

The book is no introduction on how to program functionally, procedurally or in an object-oriented way, how to write code in general, or how to speed it up. The interested reader is referred to:

  • Robert Martin: Clean Code,
  • Andrew Hunt: The Pragmatic Programmer,
  • Gang of Four: Design Patterns,
  • Colin Gillespie: Efficient R programming,
  • Patrick Burns: The R Inferno,
  • Hadley Wickham: R packages,
  • Hadley Wickham: Advanced R,
  • Dirk Eddelbuettel: Seamless R and C++ Integration with Rcpp,
  • Thomas Cormen: Introduction to Algorithms,
  • Dan Gusfield: Algorithms on Strings, Trees and Sequences,
  • Donald Knuth: The Art of Computer Programming,
  • a comment by Peter Norvig,