User manual
Chapter 1: Introduction to ESS 1
1 Introduction to ESS
The S family (S, Splus and R) and SAS statistical analysis packages provide sophisticated
statistical and graphical routines for manipulating data. Emacs Speaks Statistics (ESS) is
based on the merger of two pre-cursors, S-mode and SAS-mode, which provided support
for the S family and SAS respectively. Later on, Stata-mode was also incorporated.
ESS provides a common, generic, and useful interface, through emacs, to many statistical
packages. It currently supports the S family, SAS, BUGS/JAGS, and Stata with the level
of support roughly in that order.
A bit of notation before we begin. emacs refers to both GNU Emacs by the Free
Software Foundation, as well as XEmacs by the XEmacs Project. The emacs major mode
ESS[language], where language can take values such as S, SAS, or XLS. The inferior
process interface (the connection between emacs and the running process) referred to as
inferior ESS (iESS), is denoted in the modeline by ESS[dialect], where dialect can take
values such as S3, S4, S+3, S+4, S+5, S+6, S+7, R, XLS, VST, SAS.
Currently, the documentation contains many references to ‘S’ where actually any sup-
ported (statistics) language is meant, i.e., ‘S’ could also mean ‘R’ or ‘SAS’.
For exclusively interactive users of S, ESS provides a number of features to make life
easier. There is an easy to use command history mechanism, including a quick prefix-search
history. To reduce typing, command-line completion is provided for all S objects and “hot
keys” are provided for common S function calls. Help files are easily accessible, and a paging
mechanism is provided to view them. Finally, an incidental (but very useful) side-effect of
ESS is that a transcript of your session is kept for later saving or editing.
No special knowledge of Emacs is necessary when using S interactively under ESS.
For those that use S in the typical edit–test–revise cycle when programming S functions,
ESS provides for editing of S functions in Emacs edit buffers. Unlike the typical use of S
where the editor is restarted every time an object is edited, ESS uses the current Emacs
session for editing. In practical terms, this means that you can edit more than one function
at once, and that the ESS process is still available for use while editing. Error checking is
performed on functions loaded back into S, and a mechanism to jump directly to the error
is provided. ESS also provides for maintaining text versions of your S functions in specified
source directories.
1.1 Why should I use ESS?
Statistical packages are powerful software systems for manipulating and analyzing data, but
their user interfaces often leave something something to be desired: they offer weak editor
functionality and they differ among themselves so markedly that you have to re-learn how
to do those things for each package. ESS is a package which is designed to make editing and
interacting with statistical packages more uniform, user-friendly and give you the power of
emacs as well.
1.1.1 Features Overview
• Languages Supported:
• S family (R and S+ AKA S-PLUS)










