S Language (R and S-Plus) Programming

Overview

The S language, originally developed at Bell Labs, is generally available in two implementations, the commercial system S-Plus and the open-source system R. Over time, and because of some detailed internal differences, the two implementations have diverged in some details.

The SLanguage package provides tools for writing software that will be compatible between the implementations. Specifically, compatibility will be helped by:

  1. S language functions that merge differences between R and S-Plus implementations of the same function;
  2. new functions supplied for one implementation that were available in the other, and that seem useful;
  3. C language macro definitions and utilities that help in writing C code compatibly for the two implementations;
  4. guidelines for avoiding the inevitable remaining pitfalls that come from internal differences in the implementations.

The facilities in this package are part of a much larger effort, the Omega project for statistical computing. In particular, part of that project is designed to provide interfaces between the S language and a variety of other software, including existing systems and new approaches to statistical computing.

The definition of a ``standard'' S language is another long-term goal of the work. This package doesn't claim to be such a standard, but we hope users and programmers will contribute suggestions (and code) that will result eventually in agreement on some essential pieces.

Download

For the R source and detailed documentation of the package, download the R tar file, currently SLanguage_0.1-4_R.tar.gz. Untar this, creating a directory SLanguage. and run

R INSTALL SLanguage
in the directory above this.

For the S-Plus library, download the S-Plus tar file, SLanguage_0.1-4_Splus.tar.gz. Untar the file in the directory above where you would like the SLanguage library to be. This will create an SLanguage directory; running the ./INSTALL command in that directory will create the S-Plus library.

Documentation

Detailed documentation of the R and S-Plus function are included in the corresponding package and library. For more discussion of the approach and of the possible incompatibilities that you should consider, see the Aspects of Compatibility document.


John Chambers<jmc@research.bell-labs.com> and Duncan Temple Lang <duncan@research.bell-labs.com>
Last modified: Thu Apr 26 13:44:30 EDT 2001