R/S-PLUS Fundamentals and Programming Techniques

R/S-PLUS Fundamentals and Programming Techniques

Thomas Lumley R Core Development Team

XL-Solutions -- New York -- 2005-4-14/15

What are R and S-PLUS?

? R is a free implementation of a dialect of the S language, the statistics and graphics environment for which John Chambers won the ACM Software Systems award. S was consciously designed to blur the distinction between users and programmers. S-PLUS is a commercial system (Insightful Co) based on Bell Labs' S.

? S is a system for interactive data analysis. It has always been designed with interactive use in mind.

? S is a high-level programming language, with similarities to Scheme and Python. It is a good system for rapid development of statistical applications. For example, the survey package was developed by one person, part time, and is about 1.5% the size of the Census Bureau's VPLX package (which does less).

Why not S?

R (and S) are accused of being slow, memory-hungry, and able to handle only small data sets.

This is completely true.

Fortunately, computers are fast and have lots of memory. Data sets with a few tens of thousands of observations can be handled in 256Mb of memory, and quite large data sets with 1Gb of memory. Workstations with 32Gb or more to handle millions of observations are still expensive (but in a few years Moore's Law should catch up).

Tools for interfacing R with databases allow very large data sets, but this isn't transparent to the user.

Why not R?

21 CFR 11, Basel 2, and similar regulatory guidelines require tedious effort to document and verify things. Doing this for another system is unappealing (although not intrinsically harder than for commercial software)

R has no GUI and no commercial hand-holding services. S-PLUS does. S-PLUS also has a number of specialised add-ons (I would buy S-PLUS just to run S+SeqTrial if I were designing clinical trials).

How similar are R and S-PLUS?

? For basic command-line data analysis they are very similar

? Most programs written in one dialect can be translated straightforwardly to the other

? Most large programs will need some translation

? R has a very successful package system for distributing code and data.

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download