*R is a programming language, and the name of a software system which implements this language.
The R programming language has been developed for statistics and stochastic simulation. By now, it has
become a standard in these fields. To be precise, we should use specific terms: the language is called S, its
implementation and the environment are called R. The original authors of S are John M. Chambers, R. A. Becker and
A. R. Wilks, AT & T Bell Laboratories, Statistics Research Department. The language and its development are documented in a series of books, commonly called by their cover as white, blue and green book.
*

*For a long time the AT & T implementation of S has been the reference for the S language. Today, S
is available in a commercial version called S-Plus
<http://www.insightful.com/> (based on the AT & T implementation)
and as a free software version R , or "Gnu S" <http://www.r-project.org/>.
*

*In the meantime, R has become the reference implementation.
Essential precisations and - if necessary - even modifications of the language are
defined by R. For simplicity, here and in the sequel we use "R language" as a
common term even where the precise term should be: the S language using the R implementation.
*

*R is an interpreted programming language. Instructions in R are executed immediately.
Besides the original elements of S, R has several extensions. Some of these are introduced
in response to recent developments in statistics, some are introduced to open experimental
facilities. On the other side, advancements of the S language are taken into account.
*

* The recent (2008) version of R is 2.x. This version is largely compatible with
the previous version R 1.x. The essential changes are internal to the system. For
initial use, there is no significant difference from R 1.x. For the advanced user,
there are three essential innovations:
*

**Graphics:**The basic graphics system in R implements a model inspired by pen and paper drawing. A graphics port (paper) is opened, and lines, points or symbols are drawn in this port. In R 2.x there is a second additional graphics system, oriented at a viewport/object model. Graphical objects in various positions and orientations are mapped in a visual space.**Packages:**The original R had a linear command history and a uniform work space. R 2.x introduced an improved support for "packages" which may have encapsulated information. To support this, language concepts such as "name spaces" and various tools have been introduced.**Internationalisation:**Originally, R was based on the English language, and ASCII was the general encoding used. With R 2.x extensive support for other languages and encodings has been introduced. With this, it has become possible to provide localised versions.

*Two aspects of R are active areas of recent developments: interactive access, and
integration in a networked environment. These and other aspects are part of
Omegahat - an attempt to develop a next generation system based on the experiences from R .
This more experimental project is accessible at <http://www.omegahat.org/>.
R does already provide simple possibilities to call functions implemented in other languages
like C or FORTRAN. Omegahat extends these possibilities and allows direct access
to Java, Perl. A Java based graphical interface for R is JGR, accessible at
<http://stats.math.uni-augsburg.de/software/>. A collection of interactive
displays for R is in iplots, available at the same site.
*

*Recent developments related to R are in <http://r-forge.r-project.org/>.
Many helpful extensions are in
<http://www.bioconductor.org/>, a site which is targeted at biocomputing.
*

*R has been developed for practical work in statistics. Usability often has been given
priority over abstract design principles. As a consequence, it is not easy
to give a systematic introduction to R. A winding path is chosen here instead: case studies and
examples, followed by systematic surveys. Practical work should make use
of the rich online material which comes with R. Starting points are the
"frequently asked questions" (FAQ)
<http://www.cran.r-project.org/faqs.html>. "An Introduction to R"
is the "official" introduction. This documentation and
other manuals can be downloaded from <http://www.cran.r-project.org/manuals.html>.
*

*R comes with an extensive online help system providing function descriptions and examples.
Once you have become familiar with R, the online help and manuals will become first source of information.
For off-line reference, we include some examples of information provided by the help system, with kind permission of
The R Foundation for Statistical Computing.
*

*Many R functions are included in the basic system. Other functions must be loaded from libraries.
Some of these libraries are distributed with the R system. If additional
packages are needed, <http://www.cran.r-project.org/> is a first source for downloads,
and <http://r-forge.r-project.org/> for current projects.
*

*The commercial S-Plus is available in various versions. S-Plus
and S-Plus 2000 use S version 3 and are largely compatible with R.
S-Plus 5 is an implementation of S version 4 with some changes which need attention.
These programming details of S-Plus are not discussed here. Information about S-Plus is at <http://www.insightful.com/>.
*