Incanter
Incanter is a Clojure-based, R-like platform for statistical computing and graphics.
Incanter can be used as a standalone, interactive data analysis environment or embedded within other analytics systems as a modular suite of libraries.
Features
  • Charting & visualization functions
  • Mathematical functions
  • Statistical functions
  • Matrix & linear algebra functions
  • Data manipulation functions
Download Incanter Get Started
Interactive, dynamic, functional statistical-programming on the JVM

Incanter leverages both the power of Clojure, a dynamically-typed, functional programming language, and the rich set of libraries available on the JVM for accessing, processing, and visualizing data. At its core are the Parallel Colt numerics library, a multithreaded version of Colt, the JFreeChart charting library, the Processing visualization library, as well as several other Java and Clojure libraries.

Clojure’s seamless integration with Java makes leveraging these libraries much simpler than is possible in R, and Incanter’s R-like semantics and interactive shell makes statistical programming much simpler than is possible in pure Java.

Clojure is well suited to data processing with its sequence-oriented data structures (and the ability to extend them with the sequence abstraction), powerful sequence-processing functions, destructuring, data structure literals, and an ever growing list of new functionality provided by third-party libraries.


Back to the future

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 clojure.blip.tv.


Getting started

Download a pre-built version of Incanter here, or grab the latest source code from the Github repository, and then visit the getting started page.

Incanter is also hosted on Clojars for those using Leiningen or Maven-based tools to build Clojure applications. Incanter can be included as a dependency in your project with a single line in a Leiningen project.clj file, or with a few lines of XML in a Maven pom.xml file.

For examples of statistical programming with Incanter visit the documentation page and the Incanter Blog, and for descriptions of all of Incanter's functions, see the API page.

Additional help can be found, and questions answered, through the Incanter Google Group (subscribe here).


David Edgar Liebke
©2010 David Liebke
Fork me on GitHub