wch / R Source
Programming Languages
THE BASIC R README
(See "doc/FAQ" and "doc/RESOURCES" for more detailed information
- these files are only in the tarballs)
(See "INSTALL" for help on installation)
- INTRODUCTION
This directory contains the source code tree for R, which is a language which is not entirely unlike (versions 3 and 4 of) the S language developed at AT&T Bell Laboratories by Rick Becker, John Chambers and Allan Wilks.
R is free software distributed under a GNU-style copyleft.
The core of R is an interpreted computer language with a syntax superficially similar to C, but which is actually a "functional programming language" with capabilities similar to Scheme. The language allows branching and looping as well as modular programming using functions. Most of the user-visible functions in R are written in R, calling upon a smaller set of internal primitives. It is possible for the user to interface to procedures written in C or Fortran languages for efficiency, and also to write additional primitives.
The R distribution contains functionality for a large number of statistical procedures. Among these are: linear and generalized linear models, nonlinear regression models, time series analysis, classical parametric and nonparametric tests, clustering and smoothing. There is also a large set of functions which provide a flexible graphical environment for creating various kinds of data presentations.
A package specification allows the production of loadable modules for specific purposes, and several thousand contributed packages are made available through the CRAN sites (see https://CRAN.R-project.org/mirrors.html for the current members).
- HISTORY
R was initially written by Robert Gentleman and Ross Ihaka of the Statistics Department of the University of Auckland. In addition, a large group of individuals has contributed to R by sending code and bug reports.
Since mid-1997 there has been a core group who can modify the R source code archive, listed in file doc/AUTHORS.
R 1.0.0 was released on 29 February 2000 and 2.0.0 on 4 October 2004. R 3.0.0 came out on 3 April 2013.
This file has been minimally revised since the release of R 1.0.0.
- PRESENT STATUS
The present version implements most of the functionality in the 1988 book "The New S Language" (the "Blue Book") and many of the applications. In addition, we have implemented a large part of the functionality from the 1992 book "Statistical Models in S" (the "White Book") and the 1998 book "Programming with Data" (the "Green Book").
All the R functions have been documented in the form of help pages in
an "output independent" form which can be used to create versions for
HTML, PDF, text etc. A 1900+ page Reference Index (a collection of
most of the help pages: there is also a 3300+ page version with all
the help pages, including recommended packages) can be obtained in
PDF. The manual An Introduction to R' provides a more user-friendly starting point, and there is an FAQ, a draft
R Language Definition'
manual and more specialized manuals on admininstration, data
import/export and extending R. See INSTALL for instructions on how to
generate these documents.
- GOALS
Our aim at the start of this project was to demonstrate that it was possible to produce an S-like environment which did not suffer from the memory-demands and performance problems which S has. Somewhat later, we started to turn R into a "real" system, but unfortunately we lost a large part of the efficiency advantage in the process, so have revised the memory management mechanism and implemented delayed loading of R objects. A lot of performance tuning has been done, including the ability to use tuned linear-algebra libraries.
Longer-term goals include to explore new ideas: e.g. virtual objects and component-based programming, and expanding the scope of existing ones like formula-based interfaces. Further, we wish to get a handle on a general approach to graphical user interfaces (preferably with cross-platform portability), and to develop better 3-D and dynamic graphics.
Sincerely, The R Core Team.