radfordneal / pqR

pqR - a "pretty quick" version of R
GNU General Public License v2.0
238 stars 16 forks source link

pqR - a "pretty quick" implementation of the R programming language

This directory contains the source code (plus documentation) for an implementation of the R programming language, including some R packages. This implementation is a modification of R-2.15.0, distributed by the R Core Team, and found at www.r-project.org.
Some modules are taken from R-2.15.1 and later R Core Team releases.

The modifications in pqR substantially improve the speed of R. Some extensions to R are also implemented. These modifications were written by Radford M. Neal, radfordneal@gmail.com.

For information on pqR, see project web page at pqR-project.org, and the git repository for the source code at github.com/radfordneal/pqR, which includes modification history.

This implementation of R is distributed under the GNU General Public Licence, version 2 or version 3. See the file COPYING for a copy of version 2 of the GNU General Public Licence, and the files in share/licenses for copies of other licenses. See doc/COPYRIGHTS for futher details on copyright of this software.

See the files INSTALL, NEWS, and MODS (or the directory "mods-dir" if you are looking at a development version) for more information. The "doc" directory contains much additional documentation.


                 THE BASIC R README

       (from R-2.15.0, distributed 2012-03-30)

   (See "doc/FAQ" and "doc/RESOURCES" for more detailed information
                  - these files are only in the tarballs)
   (See "INSTALL"             for help on installation)
  1. 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 hundred contributed packages are made available through the CRAN sites (see http://CRAN.R-project.org/mirrors.html for the current members).

  1. 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.

  1. 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, LaTeX, text etc. A 1800+ page Reference Index (a collection of all the help pages) can be obtained in a variety of formats. The manual An Introduction to R' provides a more user-friendly starting point, and there is anR Language Definition' manual and more specialized manuals on data import/export and extending R. See INSTALL for instructions on how to generate these documents.

  1. 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.