Facets of R

We are seeing today a widespread, and welcome, tendency for non-computer-specialists among statisticians and others to write collections of R functions that organize and communicate their work. Along with the flood of software sometimes comes an attitude that one need only learn, or teach, a sort of basic how-to-write-the-function level of R programming, beyond which most of the detail is unimportant or can be absorbed without much discussion. As delusions go, this one is not very objectionable if it encourages participation. Nevertheless, a delusion it is. In fact, functions are only one of a variety of important facets that R has acquired by intent or circumstance during the three-plus decades of the history of the software and of its predecessor S. To create valuable and trustworthy software using R often requires an understanding of some of these facets and their interrelations. This paper identifies six facets, discussing where they came from, how they support or conflict with each other, and what implications they have for the future of programming with R.

John M. Chambers


Text and figures are licensed under Creative Commons Attribution CC BY 4.0. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".


For attribution, please cite this work as

Chambers, "The R Journal: Facets of R", The R Journal, 2009

BibTeX citation

  author = {Chambers, John M.},
  title = {The R Journal: Facets of R},
  journal = {The R Journal},
  year = {2009},
  note = {https://doi.org/10.32614/RJ-2009-008},
  doi = {10.32614/RJ-2009-008},
  volume = {1},
  issue = {1},
  issn = {2073-4859},
  pages = {5-8}