R ist eine freie Programmiersprache für statistische Berechnungen und Grafiken. Sie wurde 1992 von Statistikern für Anwender mit statistischen Aufgaben neu entwickelt. Die Syntax orientiert sich an der Programmiersprache S, mit der R weitgehend kompatibel ist, und die Semantik an Scheme. Als Standarddistribution und Referenzimplementierung wird R mit einem Interpreter als Kommandozeilenumgebung mit reduzierten grafischen Schaltflächen vom R Project selbst angeboten. So ist R aktuell auf den wichtigsten Plattformen verfügbar; die Umgebung wird von den Entwicklern ausdrücklich ebenfalls als R bezeichnet. R ist Teil des GNU-Projekts. Viele integrierte Entwicklungsumgebungen unterstützten R und erhöhen so die Benutzerfreundlichkeit, beispielsweise RStudio.
Zahlreiche online abrufbare Pakete enthalten zusätzliche Funktionen, um Daten hinsichtlich Fragestellungen aus unterschiedlichen Fachbereichen zu analysieren; weitere eigene Funktionen können erstellt werden. Die Sprache bietet Schnittstellen zu anderen Programmiersprachen und Möglichkeiten zur Integration in verschiedene Software. R grenzt sich in mehrerer Hinsicht von anderen bekannten Statistik-Umgebungen ab und ist nicht mehr ausschließlich als Statistiksoftware zu bezeichnen. Obwohl andere, heutzutage mit grafischen Benutzeroberflächen versehene Statistik-Umgebungen wie SPSS ebenfalls als spezialisierte Programmiersprachen begannen (und diese Fähigkeit bis heute beibehalten), fokussiert sich R auf seine Stärke als Statistik-orientierte Programmiersprache. R grenzt sich von anderen Programmiersprachen durch die für Statistik entworfenen Datenstrukturen und Funktionen sowie die besonderen Möglichkeiten bei der Grafikerzeugung ab.
R gilt als eine Standardsprache für statistische Problemstellungen sowohl in der Wirtschaft als auch in der Wissenschaft. Im TIOBE-Index belegt R Platz 21, im Ranking von RedMonk Platz 12, bei PYPL Platz 6 und beim Institute of Electrical and Electronics Engineers Platz 11.
Geschichte Ursprünge (1992) mini|Ross Ihaka (2010)
R wurde 1992 von den Statistikern Ross Ihaka und Robert Gentleman an der Universität Auckland entwickelt. Sie orientierten sich eng an der in den Bell Laboratories entwickelten Sprache S, die zur Verarbeitung statistischer Daten dient. R kann als freie Implementierung von S angesehen werden. Daher ist die Mehrzahl der für S geschriebenen Programme unter R lauffähig. Der Name der Sprache ist auf den Anfangsbuchstaben der Vornamen der Entwickler (Ross Ihaka und Robert Gentleman) zurückzuführen und zudem in Anlehnung an S entstanden.
S hatte eine andere Herangehensweise als bisherige Software für Statistik. Mit S konnten Daten schneller explorativ untersucht werden und passende Grafiken erstellt werden, während Analysefunktionen zu Beginn der 1990er Jahre noch nicht umfangreich implementiert waren. Das Unternehmen Statistical Sciences, Inc. erwarb eine alleinige Lizenz für die Verbreitung von S-Software ab 1993. Ihaka und Gentleman mochten die Herangehensweise und Möglichkeiten, die S für statistische Fragestellungen bot (damalige Version: S3). Sie bemängelten die Scoping-Fähigkeiten von S, bei denen klar zwischen lokalen und globalen Variablen unterschieden wurde und insbesondere die Speicherverwaltung, die ohne Garbage Collection zu schnellem Anwachsen des dynamischen Speichers führte. Sie wollten diese Eigenschaften in ihren Forschungsprojekten nutzen und zudem schneller und flexibler neue analytische Verfahren implementieren, ohne auf die S-Entwickler angewiesen zu sein. Daher erschufen sie R. Ein weiterer Vorteil war der verfügbare Quelltext, sodass sie R anschaulich für Lehrzwecke an der Universität einsetzen konnten.
Die Entwickler schrieben zuerst einen Interpreter für Scheme und wandelten die Sprache soweit ab, dass sie S ähnelte. Die Programmierung von R fand in C (sogenannte primitive Funktionen), Fortran (zum Beispiel BLAS und LAPACK für numerische lineare Algebra) und darauf aufbauend in R selbst statt. 2011 bestand der Quelltext der Standardbibliothek zu 22 % aus R-Code, während 52 % beziehungsweise 26 % aller Programmzeilen in C und Fortran geschrieben waren.
Wachstum von Sprache und Community (1993–2000) mini|Erstes Logo
1993 wurde die Sprache erstmals öffentlich verbreitet: Die Designer luden Binärdateien ihrer bisherigen Arbeit in der Sektion StatLib der Carnegie Mellon University hoch, welches eine Sammelstelle und ein Distributionskanal für statistische Software war und erhofften sich Feedback. Zudem gab es separate Bekanntmachungen an Personen, die sich enger mit S befassten. Martin Mächler von der ETH Zürich war einer der Feedbackgebenden. Er ermunterte Ihaka und Gentleman zudem zur freien Distribution von R, sodass die Sprache seit Juni 1995 unter der steht. Bis 1996 oder 1997 gab es zwischen 50 und 100 Leute in einer Mailingliste, die dabei halfen, die Sprache gemeinsam zu verbessern. Einige nutzten das zeitgleich sich verbreitende Betriebssystem Linux, wofür R die einzige Statistikumgebung war. Im Jahr 1997 wurde das R Development Core Team gebildet (heute R Core Team), das sich um die Weiterentwicklung von R kümmert und den Quellcode verändern kann. Mittlerweile zählen zwanzig Personen zu diesem engsten Entwicklerteam um Ross Ihaka und Robert Gentleman. Das (CRAN) als Plattform für Pakete startete am 23. April 1997, um Anwendern die Möglichkeit zu geben, selbst geschriebene Funktionen leichter mit Anderen zu teilen. Der älteste öffentlich verfügbare Quelltext für Unixoide fällt auf dieses Datum; die Alpha-Versionen für Windows und Mac (damals für das klassische Mac OS) erschienen kurze Zeit später. Am 29. Februar 2000 wurde die vom R Development Core Team als stabil betrachtete Version 1.0 veröffentlicht.
Performance-Optimierung (seit 2001) Seit April 2001 gibt es R für macOS, dem Nachfolgebetriebssystem des klassischen Mac OS. Im September 2002 gründeten die Mitglieder des R Development Core Teams den gemeinnützigen Verein The R Foundation for Statistical Computing in Wien, welcher sich um die Außendarstellung kümmert.
Die R-Version 2.0 wurde am 4. Oktober 2004 veröffentlicht. Seitdem nutzt R Lazy Loading, um Daten bei geringer Beanspruchung des Arbeitsspeichers schnell laden zu können. Ab Version 2.1 (18. April 2005) unterstützt R unterschiedliche Sprachversionen (Internationalisierung) und Zeichenkodierungen, insbesondere UTF-8.
In der Folge gab es einige Verbesserung der Performance. Dazu zählt die Einführung von Version 2.11 im April 2010, die R auf 64-Bit-Systemen nutzbar macht und bis zu acht Terabyte Arbeitsspeicher adressieren kann. Zusätzlich erschien mit der Version 2.13 das Paket compiler, welches in R geschriebene Funktionen zu Bytecode kompilieren kann und einen Just-in-time-Compiler enthält; mittlerweile sind die bereits existierenden, nicht vom Benutzer geschriebenen Funktionen bereits als Bytecode vorhanden. Zudem wurde im Oktober 2011 (Version 2.14) grobkörnige Nebenläufigkeit für parallele Ausführung von Funktionen eingeführt. Ab Version 3.0 (April 2013) sind Indexwerte von 231 und größer auf 64-Bit-Systemen möglich.
Versionen Die Versionsnummern von R bestehen aus drei durch Punkte voneinander getrennten Zahlen. Grundlegende Änderungen werden durch eine Erhöhung der ersten Zahl angezeigt, normale durch eine Erhöhung der zweiten Zahl. Die dritte Zahl wird bei neuen Versionen erhöht, die vorwiegend der Behebung von Bugs dienen. Seit R-Version 2.14.0 hat jede Version zusätzlich einen Codenamen, der aus den Benennungen der Peanuts-Comics und -Filme stammt,R Release Names wie Version 3.3.1: „Bug in Your Hair“ oder Version 4.0.3: „Bunny-Wunnies Freak Out“.