Emacs Speaks Statistics

Last updated
Emacs Speaks Statistics
RinEmacswithESS.png
GNU emacs in ESS and iESS mode. In the upper window, S code is edited in emacs' ESS mode. In the lower window the S code is executed by R via iESS.
Stable release
18.10.2
Type Cross-platform#Cross-platform development environments
License GPL
Website ess.r-project.org

Emacs Speaks Statistics (ESS) is an Emacs package for programming in statistical languages. It adds two types of modes to emacs:

  1. ESS modes for editing statistical languages like R, SAS and Julia; and
  2. inferior ESS (iESS) modes for interacting with statistical processes like R and SAS.

Modes of types (1) and (2) work seamlessly together. In addition, modes of type (1) provide the capability to submit a batch job for statistical packages like SAS, BUGS or JAGS when an interactive session is unwanted due to the potentially lengthy time required for the task to complete.

With Emacs Speaks Statistics, the user can conveniently edit statistical language commands in one emacs buffer, and execute the code in a second. There are a number of advantages of doing data analysis using Emacs/ESS in this way, rather than interacting with R, S-PLUS or other software directly. First, as indicated above, ESS provides a convenient way of writing and executing code without frequently switching between programs. This also encourages the good practice of keeping a record of one's data analysis, equivalent to working from do-files in Stata. Third, since emacs is also an able editor of LaTeX files, it facilitates the integration of data analysis and written text with Sweave.

ESS is freely available for download from the ESS website, which also contains documentation and links to a mailing list.


Related Research Articles

Emacs Lisp

Emacs Lisp is a dialect of the Lisp programming language used as a scripting language by Emacs. It is used for implementing most of the editing functionality built into Emacs, the remainder being written in C, as is the Lisp interpreter. Emacs Lisp is also termed Elisp, although there is also an older, unrelated Lisp dialect with that name.

Text editor Computer software used to edit plain text documents

A text editor is a type of computer program that edits plain text. Such programs are sometimes known as "notepad" software, following the naming of Microsoft Notepad. Text editors are provided with operating systems and software development packages, and can be used to change files such as configuration files, documentation files and programming language source code.

SPSS Statistical analysis software

SPSS Statistics is a statistical software suite developed by IBM for data management, advanced analytics, multivariate analysis, business intelligence, criminal investigation. Long produced by SPSS Inc., it was acquired by IBM in 2009. Current versions have the brand name: IBM SPSS Statistics.

R (programming language) Programming language for statistics

R is a programming language for statistical computing and graphics supported by the R Core Team and the R Foundation for Statistical Computing. Created by statisticians Ross Ihaka and Robert Gentleman, R is used among data miners, bioinformaticians and statisticians for data analysis and developing statistical software. Users have created packages to augment the functions of the R language.

Source-code editor Text editor specializing in software code

A source-code editor is a text editor program designed specifically for editing source code of computer programs. It may be a standalone application or it may be built into an integrated development environment (IDE) or web browser. Source-code editors are a fundamental programming tool, as the fundamental job of programmers is to write and edit source code.

This article provides basic comparisons for notable text editors. More feature details for text editors are available from the Category of text editor features and from the individual products' articles. This article may not be up-to-date or necessarily all-inclusive.

RKWard Integrated development environment for R

RKWard is a transparent front-end to the R programming language, a scripting-language with a strong focus on statistics functions. RKWard tries to combine the power of the R language with the ease of use of commercial statistical packages.

TypeScript is a programming language developed and maintained by Microsoft. It is a strict syntactical superset of JavaScript and adds optional static typing to the language. It is designed for the development of large applications and transpiles to JavaScript. As it is a superset of JavaScript, existing JavaScript programs are also valid TypeScript programs.

World Programming System

The World Programming System, also known as WPS Analytics or WPS, is a software product developed by a company called World Programming.

GNU Emacs GNU version of the Emacs text editor

GNU Emacs is a free software text editor. It was created by GNU Project founder Richard Stallman. In common with other varieties of Emacs, GNU Emacs is extensible using a Turing complete programming language. GNU Emacs has been called "the most powerful text editor available today". With proper support from the underlying system, GNU Emacs is able to display files in multiple character sets, and has been able to simultaneously display most human languages since at least 1999. Throughout its history, GNU Emacs has been a central component of the GNU project, and a flagship of the free software movement. GNU Emacs is sometimes abbreviated as GNUMACS, especially to differentiate it from other EMACS variants. The tag line for GNU Emacs is "the extensible self-documenting text editor".

Emacs Family of text editors

Emacs or EMACS is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, self-documenting, real-time display editor". Development of the first Emacs began in the mid-1970s, and work on its direct descendant, GNU Emacs, continues actively as of 2022.

A scripting language or script language is a programming language for a runtime system that automates the execution of tasks that would otherwise be performed individually by a human operator. Scripting languages are usually interpreted at runtime rather than compiled.


The Wing Python IDE family of integrated development environments (IDEs) from Wingware was created specifically for the Python programming language, with support for editing, testing, debugging, inspecting/browsing, and error checking Python code.

Org-mode

Org-mode is a document editing, formatting, and organizing mode, designed for notes, planning, and authoring within the free software text editor Emacs. The name is used to encompass plain text files that include simple marks to indicate levels of a hierarchy, and an editor with functions that can read the markup and manipulate hierarchy elements.

Rattle GUI is a free and open source software package providing a graphical user interface (GUI) for data mining using the R statistical programming language. Rattle is used in a variety of situations. Currently there are 15 different government departments in Australia, in addition to various other organisations around the world, which use Rattle in their data mining activities and as a statistical package.

Programming with Big Data in R (pbdR) is a series of R packages and an environment for statistical computing with big data by using high-performance statistical computation. The pbdR uses the same programming language as R with S3/S4 classes and methods which is used among statisticians and data miners for developing statistical software. The significant difference between pbdR and R code is that pbdR mainly focuses on distributed memory systems, where data are distributed across several processors and analyzed in a batch mode, while communications between processors are based on MPI that is easily used in large high-performance computing (HPC) systems. R system mainly focuses on single multi-core machines for data analysis via an interactive mode such as GUI interface.