R is a language and environment for statistical computing and graphics. It is a GNU project which is similar to the S language and environment which was developed at Bell Laboratories (formerly AT&T, now Lucent Technologies) by John Chambers and colleagues. R can be considered as a different implementation of S. There are some important differences, but much code written for S runs unaltered under R.
R provides a wide variety of statistical (linear and nonlinear modelling, classical statistical tests, time-series analysis, classification, clustering, …) and graphical techniques, and is highly extensible. The S language is often the vehicle of choice for research in statistical methodology, and R provides an Open Source route to participation in that activity.
One of R’s strengths is the ease with which well-designed publication-quality plots can be produced, including mathematical symbols and formulae where needed. Great care has been taken over the defaults for the minor design choices in graphics, but the user retains full control.
R is available as Free Software under the terms of the Free Software Foundation’s GNU General Public License in source code form. It compiles and runs on a wide variety of UNIX platforms and similar systems (including FreeBSD and Linux), Windows and MacOS.
R is an integrated suite of software facilities for data manipulation, calculation and graphical display. It includes
The term “environment” is intended to characterize it as a fully planned and coherent system, rather than an incremental accretion of very specific and inflexible tools, as is frequently the case with other data analysis software.
R, like S, is designed around a true computer language, and it allows users to add additional functionality by defining new functions. Much of the system is itself written in the R dialect of S, which makes it easy for users to follow the algorithmic choices made. For computationally-intensive tasks, C, C++ and Fortran code can be linked and called at run time. Advanced users can write C code to manipulate R objects directly.
Many users think of R as a statistics system. We prefer to think of it as an environment within which statistical techniques are implemented. R can be extended (easily) via packages. There are about eight packages supplied with the R distribution and many more are available through the CRAN family of Internet sites covering a very wide range of modern statistics.
R has its own LaTeX-like documentation format, which is used to supply comprehensive documentation, both on-line in a number of formats and in hardcopy.
|0.16||This is the last alpha version developed primarily by Ihaka and Gentleman. Much of the basic functionality from the "White Book" (see S history) was implemented. The mailing lists commenced on 1 April 1997.|
|0.49||1997-04-23||This is the oldest source release which is currently available on CRAN. CRAN is started on this date, with 3 mirrors that initially hosted 12 packages. Alpha versions of R for Microsoft Windows and the classic Mac OS are made available shortly after this version.|
|0.60||1997-12-05||R becomes an official part of the GNU Project. The code is hosted and maintained on CVS.|
|0.65.1||1999-10-07||First versions of update.packages and install.packages functions for downloading and installing packages from CRAN.|
|1.0||2000-02-29||Considered by its developers stable enough for production use.|
|1.4||2001-12-19||S4 methods are introduced and the first version for Mac OS X is made available soon after.|
|1.8||2003-10-08||Introduced a flexible condition handling mechanism for signalling and handling condition objects.|
|2.0||2004-10-04||Introduced lazy loading, which enables fast loading of data with minimal expense of system memory.|
|2.1||2005-04-18||Support for UTF-8 encoding, and the beginnings of internationalization and localization for different languages.|
|2.6.2||2008-02-08||Last version to support Windows 95, 98, Me and NT 4.0|
|2.11||2010-04-22||Support for Windows 64-bit systems.|
|2.12.2||2011-02-25||Last version to support Windows 2000|
|2.13||2011-04-14||Adding a new compiler function that allows speeding up functions by converting them to bytecode.|
|2.14||2011-10-31||Added mandatory namespaces for packages. Added a new parallel package.|
|2.15||2012-03-30||New load balancing functions. Improved serialisation speed for long vectors.|
|3.0.0||2013-04-03||Support for numeric index values 231 and larger on 64-bit systems.|
|3.3.3||2017-03-06||Last version to support Microsoft Windows XP.|
|3.4.0||2017-04-21||Just-in-time compilation (JIT) of functions and loops to byte-code enabled by default.|
|3.5.0||2018-04-23||Packages byte-compiled on installation by default. Compact internal representation of integer sequences. Added a new serialisation format to support compact internal representations.|
|3.6.0||2019-04-26||Improved sampling from a discrete uniform distribution, which was noticeably non-uniform on large populations. New serialisation format supported since 3.5.0 becomes the default.|
|4.0.0||2020-04-24||R now uses a stringsAsFactors = FALSE default, and hence by default no longer converts strings to factors in calls to data.frame() and read.table(). Reference counting is used for tracking object sharing, which reduces the need for copying objects. New syntax for raw string constants.|
|4.1.0||2021-05-18||Introduced |> as the pipe operator for base R syntax (similar to the %>% operator of the magrittr package) and the anonymous function shortcut syntax \(x) x+1|