Blog Archives

Introduction to Incanter

This blog will focus on statistical programming in the Clojure language using Incanter.

Incanter is a Clojure-based, R-like statistical computing and graphics environment for the JVM. At the core of Incanter are the Parallel Colt numerics library, a multithreaded version of Colt, and the JFreeChart charting library, as well as several other Java and Clojure libraries.

The motivation for creating Incanter is to provide a JVM-based statistical computing and graphics platform with R-like semantics and interactive-programming environment. Running on the JVM provides access to the large number of existing Java libraries for data access, data processing, and presentation. Clojure’s seamless integration with Java makes leveraging these libraries much simpler than is possible in R, and Incanter’s R-like semantics makes statistical programming much simpler than is possible in pure Java.

Motivation for a Lisp-based R-like statistical environment can be found in the paper Back to the Future: Lisp as a Base for a Statistical Computing System by Ihaka and Lang (2008). Incanter is also inspired by the now dormant Lisp-Stat (see the special volume in the Journal of Statistical Software on Lisp-Stat: Past, Present, and Future from 2005).

Motivation for a JVM-based Lisp can be found at the Clojure website, and screencasts of several excellent Clojure talks by the language’s creator, Rich Hickey, can be found at

Visit the Github source repository to download the Incanter library and source code, and for information on getting started with Clojure and Incanter, visit the getting started page on the Incanter wiki; for plotting examples, see the sample plots page; for examples of probability and statistical functions, see the probability distributions and statistics examples pages; for examples of matrix operations, see the matrices page; for examples of data I/O functions, see the datasets page; and for descriptions of all of Incanter’s functions, see the API page.