R (Programmiersprache)
| R | |
|---|---|
| colspan="2" class="notheme" style="text-align:center; background-color:#Vorlage:Standardfarbe;" | Logo | |
| Basisdaten | |
| Paradigmen: | funktional, dynamisch, objektorientiert |
| Erscheinungsjahr: | Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value) |
| Designer: | Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value) |
| Entwickler: | R Core Team |
| Aktuelle Version | Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value) (Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)) |
| Typisierung: | dynamisch, implizit, schwach |
| Beeinflusst von: | S, Scheme |
| Beeinflusste: | Julia |
| Betriebssystem: | Unix-artig (inkl. macOS, Linux), Mac OS, Windows |
| Lizenz: | GNU GPL |
| www.r-project.org | |
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.<ref>Sylvia Tippmann: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). In: Nature. Band 517, Nr. 1, 29. Dezember 2014, S. 109–110 (online [abgerufen am 15. Dezember 2015]).</ref><ref>Tina Amirtha: How the Rise of the “R” Computer Language is Bringing Open Source to Science. In: Fast Company. 28. März 2014, abgerufen am 12. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref><ref>Tina Amirtha: Why the R Programming Language is Good for Business. In: Fast Company. 5. Mai 2014, abgerufen am 12. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref><ref>Harald Weiss: R erlebt derzeit eine immense Verbreitung. Mario Inchiosa und Bill Jacobs zum Potenzial von R. In: heise Developer. 10. März 2015, abgerufen am 21. Juli 2015.</ref><ref>Robert A. Muenchen: The Popularity of Data Analysis Software. In: r4stats.com. 4. Januar 2012, abgerufen am 29. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> Im TIOBE-Index belegt R Platz 21,<ref>TIOBE Index for March 2024. In: TIOBE Software. Abgerufen am 19. März 2024 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> im Ranking von RedMonk Platz 12,<ref>Stephen O’Grady: The RedMonk Programming Language Rankings: January 2024. In: RedMonk tecosystems. RedMonk, 8. März 2024, abgerufen am 19. März 2024 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> bei PYPL Platz 6<ref>Pierre Carbonnelle: PYPL PopularitY of Programming Language. In: PYPL Index. Pierre Carbonnelle, abgerufen am 19. März 2024 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> und beim Institute of Electrical and Electronics Engineers Platz 11.<ref>Stephen Cass: The Top Ten Programming Languages 2023. Python and SQL are on top, but old languages shouldn’t be forgotten. In: IEEE Spectrum. The Institute of Electrical and Electronics Engineers, 29. August 2023, abgerufen am 19. März 2024 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
Geschichte
Ursprünge (1992)
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.<ref>Ross Ihaka, Robert Gentleman: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). In: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). Band 5, Nr. 3. American Statistical Association, Institute of Mathematical Statistics, Interface Foundation of North America, Alexandria 1996, S. 299–314 (stat.auckland.ac.nz [PDF; 1,7 MB; abgerufen am 29. Juli 2015]).</ref>
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.<ref>Catherine Dalzell: Do I need to learn R? In: IBM developerWorks. IBM Corp., abgerufen am 20. Oktober 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> Das Unternehmen Statistical Sciences, Inc. erwarb eine alleinige Lizenz für die Verbreitung von S-Software ab 1993.<ref>R. Douglas Martin: Statistical Sciences, Inc. In: University of Washington Computer Science & Engineering community. University of Washington, 1. April 1996, abgerufen am 20. Oktober 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> 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.<ref>Ross Ihaka: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). In: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). Band 30, 1998, S. 392–396 (stat.auckland.ac.nz [PDF; 93 kB; abgerufen am 19. Februar 2016]).</ref><ref name="computerworld-489306">Sarah Putt: The story of R: a statistical tale with a twist. In: Computerworld. 22. Juli 2010, abgerufen am 20. Oktober 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
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.<ref>Drew Schmidt: How Much of R is Written in R? In: librestats. librestats, 27. August 2011, abgerufen am 17. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
Wachstum von Sprache und Community (1993–2000)
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<ref>Der «R»-Pionier. Abgerufen am 15. Januar 2021.</ref> 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 {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value) steht.<ref>Ross Ihaka: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). In: Sanford Weisberg (Hrsg.): {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). The Interface Foundation of North America, 1998, S. 392–396 (stat.auckland.ac.nz [PDF; 93 kB; abgerufen am 29. Juli 2015]).</ref> Bis 1996 oder 1997 gab es zwischen 50 und 100 Leute in einer Mailingliste, die dabei halfen, die Sprache gemeinsam zu verbessern.<ref name="computerworld-489306" /> Einige nutzten das zeitgleich sich verbreitende Betriebssystem Linux, wofür R die einzige Statistikumgebung war.<ref>Peter Dalgaard: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). 2. Auflage. Springer, New York 2008, ISBN 978-0-387-79053-4 (Material).</ref> 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 {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value) (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.<ref>R Core Team: What’s New? In: R Project. The R Foundation, abgerufen am 8. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
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,<ref>R Release Names</ref> wie Version 3.3.1: „Bug in Your Hair“ oder Version 4.0.3: „Bunny-Wunnies Freak Out“.
| Versionsnummer | Erscheinungsdatum | Codename | Kommentar |
|---|---|---|---|
| 0.49 | 23.4.1997 | Start von CRAN, erste öffentliche Unix-Version von R (Paket base) | |
| 0.60 | 5.12.1997 | ||
| 0.61 | 21.12.1997 | ||
| 0.61.1 | 11.1.1998 | ||
| 0.61.2 | 17.3.1998 | ||
| 0.61.3 | 2.5.1998 | ||
| 0.62 | 14.6.1998 | ||
| 0.62.1 | 15.6.1998 | ||
| 0.62.2 | 10.7.1998 | ||
| 0.62.3 | 28.8.1998 | ||
| 0.62.4 | 23.10.1998 | ||
| 0.63 | 13.11.1998 | ||
| 0.63.1 | 4.12.1998 | ||
| 0.63.2 | 11.1.1999 | ||
| 0.63.3 | 5.3.1999 | ||
| 0.64.0 | 7.4.1999 | ||
| 0.64.1 | 7.5.1999 | ||
| 0.64.2 | 2.7.1999 | ||
| 0.65.0 | 27.8.1999 | ||
| 0.65.1 | 6.10.1999 | Möglichkeit Pakete aus R heraus von CRAN zu installieren | |
| 0.90.0 | 22.11.1999 | Hinzufügung des Pakets splines für glättende Regressions-Splines und interpolierende Splines | |
| 0.90.1 | 15.12.1999 | ||
| 0.99.0 | 7.2.2000 | ||
| 1.0.0 | 29.2.2000 | erste von den Entwicklern als stabil betrachtete Version | |
| 1.0.1 | 14.4.2000 | ||
| 1.1.0 | 15.6.2000 | Hinzufügung des Pakets tcltk um auf das Tk-Toolkit zur Erstellung von grafischen Benutzeroberflächen zugreifen zu können | |
| 1.1.1 | 15.8.2000 | ||
| 1.2.0 | 15.12.2000 | überarbeitetes Speicherverwaltungssystem mit generationellem Garbage Collector | |
| 1.2.1 | 15.1.2001 | ||
| 1.2.2 | 26.2.2001 | ||
| 1.2.3 | 26.4.2001 | erste Version für macOS | |
| 1.3.0 | 22.6.2001 | ||
| 1.3.1 | 31.8.2001 | ||
| 1.4.0 | 19.12.2001 | Hinzufügung der Pakete methods, welches S4-Methoden bereitstellt, und tools zur Paketentwicklung und -verwaltung | |
| 1.4.1 | 30.1.2002 | ||
| 1.5.0 | 29.4.2002 | ||
| 1.5.1 | 17.6.2002 | ||
| 1.6.0 | 1.10.2002 | ||
| 1.6.1 | 1.11.2002 | ||
| 1.6.2 | 10.1.2003 | ||
| 1.7.0 | 16.4.2003 | ||
| 1.7.1 | 16.6.2003 | ||
| 1.8.0 | 8.10.2003 | Hinzufügung des Pakets grid für bessere Steuerung der Position von Grafiken in Output-Dateien | |
| 1.8.1 | 21.11.2003 | ||
| 1.9.0 | 12.4.2004 | die Pakete graphics (Grafiken), stats (Statistik-Funktionen) und utils (Programmier- und Entwicklerwerkzeuge) lösen sich aus dem Paket base (wichtigste R-Funktionen); die bisherigen Pakete ctest, eda, modreg, mva, nls, stepfun und ts werden ins neu geschaffene Paket stats verschoben, mle ins neu geschaffene Paket stats4 (statistische Funktionen für S4-Klassen); lqs ist nur noch empfohlener Bestandteil der Standardbibliothek | |
| 1.9.1 | 21.6.2004 | ||
| 2.0.0 | 4.10.2004 | Unterstützung von Lazy Loading; das Paket grDevices löst sich aus graphics um den Schritt der Datenvisualisierung von der Output-Datei zu trennen; Hinzufügung des Pakets datasets, welches Beispieldatensätze enthält | |
| 2.0.1 | 15.11.2004 | ||
| 2.1.0 | 18.4.2005 | Unterstützung verschiedener Zeichenkodierungen, Beginn mehrerer Sprachversionen | |
| 2.1.1 | 20.6.2005 | ||
| 2.2.0 | 6.10.2005 | ||
| 2.2.1 | 20.12.2005 | ||
| 2.3.0 | 24.4.2006 | ||
| 2.3.1 | 1.6.2006 | ||
| 2.4.0 | 3.10.2006 | ||
| 2.4.1 | 18.12.2006 | ||
| 2.5.0 | 24.4.2007 | ||
| 2.5.1 | 28.6.2007 | ||
| 2.6.0 | 3.10.2007 | ||
| 2.6.1 | 26.11.2007 | ||
| 2.6.2 | 8.2.2008 | ||
| 2.7.0 | 22.4.2008 | ||
| 2.7.1 | 23.6.2008 | ||
| 2.7.2 | 25.8.2008 | ||
| 2.8.0 | 20.10.2008 | ||
| 2.8.1 | 22.12.2008 | ||
| 2.9.0 | 17.4.2009 | ||
| 2.9.1 | 26.6.2009 | ||
| 2.9.2 | 24.8.2009 | ||
| 2.10.0 | 26.10.2009 | ||
| 2.10.1 | 14.12.2009 | ||
| 2.11.0 | 22.4.2010 | 64-Bit R | |
| 2.11.1 | 31.5.2010 | ||
| 2.12.0 | 15.10.2010 | Hinzufügung von Referenzklassen | |
| 2.12.1 | 16.12.2010 | ||
| 2.12.2 | 25.2.2011 | ||
| 2.13.0 | 13.4.2011 | Hinzufügung des Pakets compiler, welches eines Bytecode-Compiler bereitstellt | |
| 2.13.1 | 8.7.2011 | ||
| 2.13.2 | 30.9.2011 | ||
| 2.14.0 | 31.10.2011 | Great Pumpkin | Hinzufügung des Pakets parallel, wodurch grobkörnige Nebenläufigkeit möglich wird |
| 2.14.1 | 22.12.2011 | December Snowflakes | |
| 2.14.2 | 29.2.2012 | Gift-Getting Season | |
| 2.15.0 | 30.3.2012 | Easter Beagle | |
| 2.15.1 | 22.6.2012 | Roasted Marshmallows | |
| 2.15.2 | 26.10.2012 | Trick or Treat | |
| 2.15.3 | 1.3.2013 | Security Blanket | |
| 3.0.0 | 3.4.2013 | Masked Marvel | Unterstützung von Indexwerten größer 231 |
| 3.0.1 | 16.5.2013 | Good Sport | |
| 3.0.2 | 25.9.2013 | Frisbee Sailing | |
| 3.0.3 | 6.3.2014 | Warm Puppy | |
| 3.1.0 | 10.4.2014 | Spring Dance | |
| 3.1.1 | 10.7.2014 | Sock it to Me | |
| 3.1.2 | 31.10.2014 | Pumpkin Helmet | |
| 3.1.3 | 9.3.2015 | Smooth Sidewalk | |
| 3.2.0 | 16.4.2015 | Full of Ingredients | Einige Konzepte aus pqR, einer beschleunigten Abart des R-Interpreters, wurden in R eingepflegt. Besseres Handling von großen Objekten im Arbeitsspeicher. |
| 3.2.1 | 18.6.2015 | World-Famous Astronaut | |
| 3.2.2 | 14.8.2015 | Fire Safety | |
| 3.2.3 | 10.12.2015 | Wooden Christmas-Tree | |
| 3.2.4 | 10.3.2016 | Very Secure Dishes | |
| 3.2.5 | 14.4.2016 | Very, Very Secure Dishes | |
| 3.3.0 | 3.5.2016 | Supposedly Educational | R kann jetzt auf allen Plattformen via HTTPS Dateien herunterladen. Neue Funktion sigma, welche aus verschiedenen statistischen Modellen die residual standard deviation berechnet. Einige Grundfunktionen (wie match) wurden neu implementiert und beschleunigt.
|
| 3.3.1 | 21.6.2016 | Bug in Your Hair | |
| 3.3.2 | 31.10.2016 | Sincere Pumpkin Patch | |
| 3.3.3 | 6.3.2017 | Another Canoe | |
| 3.4.0 | 21.4.2017 | You Stupid Darkness | Der Just-In-Time-Byte-Code-Compiler ist standardmäßig aktiviert |
| 3.4.1 | 30.6.2017 | Single Candle | |
| 3.4.2 | 28.9.2017 | Short Summer | |
| 3.4.3 | 30.11.2017 | Kite-Eating Tree | |
| 3.4.4 | 15.03.2018 | Someone to Lean On | |
| 3.5.0 | 23.04.2018 | Joy in Playing | ALTREP Framework standardmäßig aktiviert (alternative Repräsentation von R Objekten) |
| 3.5.1 | 02.07.2018 | Feather Spray | |
| 3.5.2 | 20.12.2018 | Eggshell Igloo | |
| 3.5.3 | 26.03.2019 | Great Truth | |
| 3.6.0 | 26.04.2019 | Planting of a Tree | |
| 3.6.3 | 29.2.2020 | Holding the Windsock | 20. Geburtstag von R 1.0 |
| 4.0.0 | 24.04.2020 | Arbor Day | Als größte Neuerung werden nun alle Referenzen gezählt, so dass R-Programme effizienter mit dem Arbeitsspeicher umgehen. Matrizen werden nun konsistent als (zweidimensionale) Arrays implementiert. Für die Erstellung von Grafiken wurde die Farbpalette verbessert, so dass nun verschiedene Farbtöne dieselbe Luminanz aufweisen.<ref>blog.revolutionanalytics.com</ref> |
| 4.0.1 | 2020-06-06 | See Things Now | |
| 4.0.2 | 2020-06-22 | Taking Off Again | |
| 4.0.3 | 2020-10-10 | Bunny-Wunnies Freak Out | |
| 4.0.4 | 2021-02-15 | Lost Library Book | |
| 4.0.5 | 2021-03-31 | Shake and Throw | |
| 4.1.0 | 2021-05-18 | Camp Pontanezen | |
| 4.1.1 | 2021-08-10 | Kick Things | |
| 4.1.2 | 2021-11-01 | Bird Hippie | |
| 4.1.3 | 2022-03-10 | One Push-Up | |
| 4.2.0 | 2022-04-22 | Vigorous Calisthenics | |
| 4.2.1 | 2022-06-23 | Funny-Looking Kid | |
| 4.2.2 | 2022-10-31 | Innocent and Trusting | |
| 4.2.3 | 2023-03-15 | Shortstop Beagle | |
| 4.3.0 | 2023-04-21 | Already Tomorrow | |
| 4.3.1 | 2023-06-16 | Beagle Scouts | |
| 4.3.2 | 2023-10-31 | Eye Holes | |
| 4.3.3 | 2024-02-29 | Angel Food Cake | |
| 4.4.0 | 2024-04-24 | Puppy Cup | |
| 4.4.1 | 2024-06-14 | Race for Your Life | |
| 4.4.2 | 2024-10-31 | Pile of Leaves | |
| 4.4.3 | 2025-02-28 | Trophy Case | |
| 4.5.0 | 2025-04-11 | How About a Twenty-Six | |
| 4.5.1 | 2025-06-13 | Great Square Root | |
| 4.5.2 | 2025-10-31 | [Not] Part in a Rumble | |
| 4.5.3 | 2026-03-11 | Reassured Reassurer |
Eigenschaften
R muss nicht kompiliert werden und bringt Benutzereingaben in der Kommandozeilenkonsole nach Betätigen der Enter-Taste unmittelbar zur Ausführung. Es lassen sich zudem Programme in Skripten ausführen. Im Folgenden wird auf die Programmierparadigmen, Syntax und Datentypen eingegangen sowie die Dateiformate und Funktionalitäten der Standard-Version genannt:<ref>Hadley Wickham: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). Chapman & Hall/CRC, Boca Raton 2015, ISBN 978-1-4665-8696-3 (online [abgerufen am 30. August 2015]).</ref><ref>Floréal Morandat, Brandon Hill, Leo Osvald, Jan Vitek: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). In: ECOOP’12 Proceedings of the 26th European conference on Object-Oriented Programming. 2012, S. 104–131 (r.cs.purdue.edu [PDF; 850 kB]).</ref><ref>Uwe Ligges: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). 3. Auflage. Springer, Heidelberg 2009, ISBN 978-3-540-79997-9.</ref>
Programmierparadigmen
R ist eine Multiparadigmensprache der vierten Generation. Der kanadische Statistiker John M. Chambers, der S mitentwickelt hat, fasst die Funktionsweise von R folgendermaßen zusammen:
“To understand computations in R, two slogans are helpful: Everything that exists is an object. Everything that happens is a function call.”
„Um Berechnungen in R zu verstehen sind zwei Sätze hilfreich: Alles, was existiert, ist ein Objekt. Alles, was passiert, ist ein Funktionsaufruf.“
Das funktionale Herz ist von Scheme und Haskell inspiriert. Funktionen können als First-Class-Objekte neu erstellt, unter anderem Namen gespeichert, überschrieben (sie sind somit keine Schlüsselworte) und ihrerseits an andere Funktionen übergeben werden (Closures). Es ist möglich, Funktionen zu benennen oder anonym zu deklarieren (Lambda-Funktionen). Einige Funktionen sind dazu geschaffen, vektorwertig ausgeführt zu werden; für Rekursion wurde nicht optimiert. Viele Funktionen arbeiten unterschiedlich in Abhängigkeit vom Input (Reflexion). Oft gibt es notwendige Argumente für Funktionen (beispielsweise Daten), meistens weitere, optionale Argumente. Argumente können in Abhängigkeit anderer Argumente definiert werden. Argumente werden per deep copy übergeben. Die Namen der jeweiligen Funktionsparameter können beim Funktionsaufruf abgekürzt werden, sodass sie eindeutig sind oder weggelassen werden, sofern die Reihenfolge der Argumente mit derjenigen der Funktionsparameter übereinstimmt. Darüber hinaus gibt es die Möglichkeit beim Erstellen neuer Funktionen für Funktionsparameter Standardwerte zu setzen. Auch Currying ist möglich. Sofern nicht anders spezifiziert, ist das zuletzt zugewiesene Objekt innerhalb einer Funktion ihr Rückgabewert. Insgesamt bestehen Funktionen aus den Komponenten Argumente, Körper und Umgebung. Für die Funktionsweise von Funktionen ist die Umgebung entscheidend, in der sie erstellt wurde, nicht die, aus der sie aufgerufen wird. Dieses Lexical Scoping ist eine der Eigenschaften von Scheme, die in R übernommen wurde und in den anderen S-Implementierungen nicht existiert. Neu erstellte Objekte befinden sich in der Umgebung, in der sie erschaffen wurden, und jeder auszuwertende Ausdruck kann durch sein Ergebnis ersetzt werden (referenzielle Transparenz). R verwendet Lazy Evaluation, das heißt Code wird erst ausgewertet, wenn er benötigt wird (call by need). R kann daher mit Futures umgehen, was es darüber hinaus ermöglicht Funktionen ineinander zu verschachteln und unbegrenzte Datenstrukturen zu erstellen. Berechnungen auf symbolischer Ebene sind standardmäßig kein Bestandteil von R.
R hat zudem Eigenschaften, die für dynamische Programmierung typisch sind. Variablen können flexibel die Struktur verändern. Es ist möglich, Code für noch nicht ausgewertete Ausdrücke zu erhalten. Text kann dynamisch als Code ausgewertet werden. Des Weiteren können Futures mehrfach ausgewertet werden.
R implementiert die in der vierten Version von S hinzugefügten Klassen und Multimethoden für Ad-hoc-Polymorphie, sodass objektorientierte Programmierung möglich wurde. Als Klassensystem mit anderer Herangehensweise wurden Referenzklassen später hinzugefügt (siehe Unterabschnitt Klassen).
Eingelesene Daten speichert R im Hauptspeicher. Die Datenspeicherung erfolgt spaltenorientiert. R nutzt Garbage Collection und Lazy Loading zur Verringerung des Speicherbedarfs. Es gibt kein Aliasing.
Syntax
R ist case sensitive, unterscheidet also Groß- und Kleinschreibung. Objekte können mit dem Zuweisungsoperator (<- und in vielen Fällen =) erstellt oder überschrieben werden. Für Objektnamen sind alphanumerische Zeichen, Punkt und Unterstrich erlaubt, als erstes Zeichen jedoch nur Buchstaben oder ein Punkt (in letzterem Fall ist das Objekt versteckt). Der Super-Zuweisungsoperator (<<-) weist Variablen der nächsthöheren Umgebung Werte zu und bildet die einzige Möglichkeit, Wirkungen zu erzielen. Funktionen dienen dazu, Variablen zu verändern, miteinander in Beziehung zu setzen, statistische Analysen durchzuführen und mehr. Nach dem Funktionsnamen steht beim Aufruf eine öffnende runde Klammer; die schließende runde Klammer schließt die Funktion ab. Innerhalb der Klammern können der Funktion Argumente übergeben werden, die durch Kommas getrennt werden. Die logischen, mathematischen und Zuweisungsoperatoren sowie Operatoren der Art %...% (dazu zählen alle benutzerdefinierten) werden üblicherweise statt einer Voranstellung zwischen zwei Argumenten platziert. Ein doppelter Doppelpunkt wie in Paket::Funktion() greift auf Funktion aus Paket zu, ohne dass das Paket geladen ist oder zum Suchpfad hinzugefügt wurde. Funktionen, die nacheinander ausgeführt werden sollen, können durch Semikola getrennt werden oder in separate Codezeilen geschrieben werden. Eckige Klammern dienen der Indizierung von Elementen aus Datenstrukturen. Das Dollarzeichen ($) erleichtert – sofern vorhanden – eine Indizierung über Namen, sodass Inhalte assoziativ angesprochen werden können. Geschweifte Klammern legen Programmierblöcke fest. Text nach dem Rautezeichen (#) stellt bis zum Zeilenende einen Kommentar dar. Einrückungen und wiederholter Leerraum haben keinen Einfluss auf die Ausführung von R-Code.
Als Kontrollstrukturen gibt es if, else if, else und das elementweise ifelse sowie switch als bedingte Anweisungen und die Schleifen for (Zähl- und Mengenschleife), while (kopfgesteuert) sowie repeat ... if (Bedingung) break (fußgesteuert). Goto-Sprunganweisungen sind kein Bestandteil von R.
Im Bereich der statistischen Modelle werden bei vielen Verfahren Abhängigkeiten durch Formeln mit Hilfe einer Tilde (~) spezifiziert. Dabei stehen abhängige Variablen links und erklärende Variablen rechts von der Tilde. Arithmetische Operatoren haben in diesem Kontext eine andere Bedeutung und stehen für die Aufnahme und das Entfernen weiterer Variablen sowie die Einbeziehung von Interaktionseffekten.
Datenstrukturen
Als atomare Datentypen existieren in R die leere Menge (NULL), logische (TRUE und FALSE), numerische (double), integer und komplexe Werte sowie Zeichenketten (character) und raw für Byte-Repräsentation.
Es gibt keine Skalare. Die einfachste vorkommende Datenstruktur ist der Vektor. Ein Vektor ist über die drei Eigenschaften Typ, Länge und Attribute definiert. Die Elemente von Vektoren (eindimensional), Matrizen (ein- oder zweidimensional) und Arrays (beliebig dimensional) müssen Elemente gleichen Datentyps sein. Rechenoperationen werden auf alle Elemente dieser Datenstrukturen angewendet. Bei Zuweisung unterschiedlicher Datentypen zu einem Vektor werden die Daten in den flexibelsten Datentyp umgewandelt. Das erste Element eines Vektors hat den Index 1.
Neben diesen homogenen Datenstrukturen werden oft Data-Frames verwendet, um Daten als Datensatz darzustellen. Data-Frames sind matrizenförmig, können jedoch aus Spalten unterschiedlicher Datentypen bestehen. Darüber hinaus gibt es Listen. In Listen sind Daten beliebiger R-Strukturen und Datentypen enthalten. Objekte verschiedener Datenstrukturen können gemeinsam in der Arbeitsumgebung existieren und gleichzeitig in Analysen verwendet werden. Wenn Datenstrukturen unterschiedlicher Dimensionen elementweise miteinander verknüpft werden, wird meistens sogenanntes Recycling verwendet, wobei das kürzere Objekt so lange aneinander gereiht wird, bis es die Länge des längeren Objektes erreicht.
Fehlende Werte werden in R als NA (Not Available) bezeichnet; benutzerdefinierte fehlende Werte können nicht angegeben werden. Nicht-definierte Werte werden als NaN (Not a Number) dargestellt.
Attribute liefern Metadaten zu R-Objekten. Name, Klasse (S3) und Dimension sind die wichtigsten Attribute. Sie bleiben in vielen Fällen beim Modifizieren von Objekten erhalten; die meisten anderen Attribute entfallen. Benutzerdefiniert können eigene Attribute ergänzt werden.
Klassen
R verfügt über vier Klassensysteme. Der Basis-Typ wurde in C erstellt und bildet die Grundlage für die anderen Klassensysteme. S3-Klassen bestehen in R seit Beginn, S4-Klassen wurden den Klassen der später entwickelten vierten Version von S nachempfunden und Referenzklassen wurden als letztes hinzugefügt.
Im S3-Klassensystem gehören Methoden nicht zu Objekten oder Klassen, sondern zu Funktionen; sie entsprechen somit generischen Funktionen. Die generische Funktion entscheidet darüber, welche Methode aufgerufen wird. Es gibt keine formale Beschreibung einer Klasse. Um ein Objekt einer Klasse zuzuordnen, reicht es aus, das Attribut der Klasse zu setzen. Eine oft verwendete Klasse ist factor wobei ein integer-Vektor für kategoriale Variablen verwendet wird, indem den Zahlen Ausprägungen zugewiesen werden.
Das S4-Klassensystem ist eine Erweiterung der S3-Klassen. Die Funktionsweise ist ähnlich, sodass Methoden zu Funktionen gehören. Klassen haben jedoch formale Definitionen, welche die Felder und Vererbungsstrukturen (Basisklasse) beschreiben. Eine S4-Klasse besteht aus drei Eigenschaften: der Name zur Identifizierung der Klasse, eine Liste der Felder, um Namen der Felder und zugelassene Klassen zu definieren, sowie eine Zeichenkette mit der Klasse, von der sie abgeleitet ist. Mit S4-Klassen ist eine mehrfache Vererbung möglich. Es gibt Hilfsfunktionen um Methoden und generische Funktionen zu definieren. Das S4-Klassensystem implementiert Multimethoden, sodass generische Funktionen Methoden auf Grundlage der Klassen mehrerer Argumente auswählen können. Mit dem At-Zeichen (@) können Felder von einem S4-Objekt extrahiert werden. Objekt und Methode werden im Funktionsaufruf durch einen Punkt getrennt. Benutzerdefiniert können neue Klassen erstellt oder bestehende umdefiniert werden.
Im System der Referenzklassen gehören Methoden zu Klassen und nicht zu Funktionen. Methoden werden zu Objekten gesendet (Nachrichtenaustausch) und das Objekt entscheidet welche Funktion aufzurufen ist. Objekte sind veränderlich und verhalten sich ähnlich wie Objekte in den objektorientierten Sprachen Python, Ruby, Java und C#. Objekt und Methode werden im Funktionsaufruf durch das Dollarzeichen getrennt.
Dateiformate
R-Code wird in Textdateien gespeichert, die üblicherweise die Dateiendung .R besitzen. Das Format .RData (oder kurz .Rda) wird verwendet, um ein R-Objekt, beispielsweise einen Datensatz, oder eine Kollektion von R-Objekten, also Daten und Funktionen, im R-internen binären serialisierten Format abzuspeichern, wobei diese Dateien zusätzlich standard-komprimiert sind. Die gesamte Arbeitsumgebung kann so ebenfalls als .RData-Datei gespeichert werden. Die zuletzt verwendeten Befehle in der Kommandozeile werden zudem als .Rhistory gespeichert. Einzelne Objekte können als .Rds gespeichert werden.
In R werden Daten oft durch CSV-Dateien und Textdateien importiert und exportiert. Mit Hilfe von Paketen (siehe Abschnitt Pakete) können zahlreiche andere Dateiformate (z. B. von Microsoft Excel und anderer Statistiksoftware) importiert und exportiert werden. Daten können zudem aus der Zwischenablage (clipboard) eingefügt werden.
Für die Erstellung von Grafiken können devices geöffnet werden, mit denen Output statt in die Konsole in Dateien geschrieben wird. Dabei werden die Grafikformate JPEG, PNG, SVG, TIFF, Windows Bitmap und Metafile sowie Cairo-Grafiken unterstützt. Außerdem können die Formate PDF, PostScript und Encapsulated PostScript erstellt werden und die beim macOS verbreitete Grafikschicht Quartz sowie unixtypische X Window System und Xfig angesprochen werden.
Grundlegende Funktionen
Der Funktionsumfang einer R-Installation umfasst die Verwaltung von Dateien inklusive Herunterladen, Entpacken und Einlesen. Des Weiteren sind Funktionen zur Erstellung, Prüfung und Umwandlung von Datenstrukturen enthalten. Es gibt zahlreiche Funktionen zum Datenmanagement, unter Verwendung regulärer Ausdrücke oder printf zur Bearbeitung und Formatierung von Zeichenketten. Schleifen, bedingte Anweisungen und Verzweigungen sind enthalten sowie Funktionen der apply- und MapReduce-Familien (Funktionen höherer Ordnung), die alternativ genutzt werden können.
Zahlreiche Funktionen der deskriptiven Statistik sind implementiert und einige Analysefunktionen. Dies umfasst lineare und generalisierte lineare Modelle sowie die Varianzanalyse. Im Bereich Zeitreihenanalyse zählen dazu ARMA-Modelle, Interpolations- und Glättungsverfahren (etwa exponentielle Glättung, Kalman-Filter und Fourier-Transformation) sowie Dekomposition. Auch Hauptkomponenten- und Faktorenanalyse, die multidimensionale Skalierung und Verfahren der Clusteranalyse (hierarchisch sowie K-Means) sind aufzuzählen. Einige statistische Tests und Wahrscheinlichkeitsverteilungen mit Dichte, Verteilungsfunktion, Quantilsfunktion und Zufallszahlen gehören zum Standardumfang. Mehrere mathematische Funktionen zählen ebenfalls dazu, etwa spezielle Funktionen, trigonometrische Funktionen, Mengenoperationen, Matrixoperationen und Optimierungsalgorithmen.
Zusätzlich befinden sich Beispieldatensätze in R. Es existieren zahlreiche Funktionen für die Erstellung von Grafiken und ergänzenden grafischen Elementen inklusive LaTeX-ähnlicher Ausdrücke für mathematische Beschriftungssymbole. R nutzt das Hexadezimalsystem zur Repräsentation von Farben und beinhaltet 657 bereits in Worten spezifizierte Farben.
Hinzu kommen Funktionen zum Abruf von Metadaten, zur Paketverwaltung, für Debugging und Profiling sowie zur Veränderung von Einstellungen.
Um R als Skriptsprache für automatisierte Analysen zu verwenden, kann R-Code in eine Textdatei geschrieben und auf Windows entweder mit Rscript <Dateiname> oder R CMD BATCH <Dateiname> als Anweisung in einer Stapelverarbeitungsdatei ausgeführt werden. Auf unixoiden Systemen kann R-Code mit chmod ausführbar gemacht werden, und falls Rscript installiert ist, kann der Code wie jedes andere Skript ausgeführt werden. Somit können wiederkehrende Aufgaben mit Hilfe der Windows-Aufgabenplanung oder durch Cron erstellt werden. Untenstehendes Programm schreibt "Hello World!" auf die Kommandozeile (siehe auch Hallo-Welt-Programm); die erste Zeile des Programms ist die sogenannte Shebang-Zeile:
<syntaxhighlight lang="r">
- ! /usr/bin/Rscript
- mein erstes R-Skript:
writeLines("Hello World!") </syntaxhighlight>
In R gibt es einen Bytecode-Compiler und die Grundinstallation von R enthält den Befehl system(), womit Befehle an das Betriebssystem übergeben werden. Somit können beliebige, bereits bestehende Programme und Skripte mit Übergabe von Kommandozeilenparametern gestartet und der Rückgabewert in einer Variable gespeichert werden. Ebenfalls sind die Befehle .C() und .Fortran() vorhanden, um bereits kompilierte Programme in C und Fortran einzubinden. Auf diese Weise werden viele rechenintensive Subroutinen in besser geeignete Programmiersprachen ausgelagert, während die statistischen Methoden in R implementiert sind. So können Statistiker, die in R ihre Daten auswerten, rasch neue Methoden entwickeln, während Programmierer diese später bei Bedarf optimieren.
Pakete
Die Standardbibliothek von R besteht aus 29 Paketen (Programmbibliotheken), in denen Funktionen zu ähnlichen Themen gebündelt sind. Diese Pakete sind in den herunterladbaren Distributionen von R enthalten. Die wichtigsten 14 Pakete mit den obigen Funktionen sind bei jedem Programmstart geladen; sie werden zusammen mit R selbst aktualisiert. Die weiteren 15 Pakete werden empfohlen.
Der Funktionsumfang kann durch eine Vielzahl von zusätzlichen Paketen erweitert und an spezifische statistische Problemstellungen aus diversen Anwendungsbereichen angepasst werden. Viele Pakete können dabei direkt aus einer über die R-Konsole abrufbaren Liste ausgewählt und automatisch installiert werden. Zentrales Archiv für diese Pakete ist das {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value) (CRAN) mit Haupt-Server an der Wirtschaftsuniversität Wien und zahlreichen Spiegelservern.<ref>Rudolf Felser: „R“: Bedeutende Programmiersprache mit Wiener Wurzeln. In: Computerwelt. CW Fachverlag, 28. Juli 2015, abgerufen am 21. Januar 2021.</ref> Bioconductor ist eine weitere Sammlung von R-Paketen mit Erweiterungen aus der Bioinformatik, insbesondere der Analyse von Genexpressionsdaten. Es gibt über 10000 Pakete auf CRAN<ref>R Core Team u. a.: Contributed Packages. In: CRAN. The R Foundation, abgerufen am 13. März 2016 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> und 1294 Pakete auf Bioconductor.<ref>Bioconductor Core Team: All Packages. In: Bioconductor. Bioconductor, abgerufen am 13. März 2016 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
Unter der Rubrik Task Views<ref>R Core Team: CRAN Task Views. In: CRAN. The R Foundation, abgerufen am 19. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> enthält CRAN eine Liste von 33 Themengebieten für welche eine kommentierte Beschreibung der für das Themengebiet relevanten Pakete vorhanden ist. Dies sind bayessche Statistik, Chemometrik und Computerphysik, klinische Studien, Clusteranalyse, Differentialgleichungen, Wahrscheinlichkeitsverteilungen, Ökonometrie, mathematische Beschreibung im Umweltbereich, Statistische Versuchsplanung, Finanzen, Genetik, Grafiken, Hochleistungsrechnen und Parallelrechnen, maschinelles Lernen, bildgebende Verfahren in der Medizin, Metaanalyse, multivariate Verfahren, Computerlinguistik, numerische Mathematik, amtliche Statistik und Befragung, Optimierung, Pharmakokinetik, Phylogenese, Psychometrie, reproduzierbare Forschung, robuste Schätzverfahren, Sozialwissenschaften, Geostatistik, Geostatistik mit Berücksichtigung der Zeit, Ereigniszeitanalyse, Zeitreihenanalyse, Webservices und -technologien sowie probabilistische graphische Modelle. Im Folgenden wird ein Überblick auf wichtige Pakete gegeben, die R mit anderer Software verknüpfen oder häufig heruntergeladen wurden.<ref>DataCamp: Leaderboard. Most downloaded packages. In: Rdocumentation.org. Rstudio, abgerufen am 12. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), Berücksichtigung nur von Paketen, die über RStudio heruntergeladen wurden).</ref>
Schnittstellen
… zu anderer Software und deren Dateiformaten
Das Paket foreign<ref>R Core Team u. a.: R-Paket foreign. Read Data Stored by Minitab, S, SAS, SPSS, Stata, Systat, Weka, dBase, … In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.8-64).</ref> erlaubt es, Datensätze aus den anderen Statistikprogrammen SPSS, SAS (zum Teil), Stata, SYSTAT, Minitab, Epi Info, GNU Octave sowie Weka einzulesen, zu analysieren und in den jeweiligen Formaten zu speichern. translateSPSS2R<ref>Andreas Wygrabek, Bastian Wießner u. a.: R-Paket translateSPSS2R. Toolset for Translating SPSS-Syntax to R-Code. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.0.0).</ref> unterstützt die Übersetzung von SPSS-Code nach R. sas7bdat<ref>Matt Shotwell: R-Paket sas7bdat. SAS Database Reader (experimental). In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.5).</ref> ermöglicht das Einlesen von SAS-Dateien, R.matlab<ref>Henrik Bengtsson u. a.: R-Paket R.matlab. Read and Write MAT Files and Call MATLAB from Within R. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 3.2.0).</ref> das von Matlab-Dateien. Zudem kann Matlab dadurch über R gesteuert werden. Ähnliches bietet RcppOctave<ref>Renaud Gaujoux: R-Paket RcppOctave. Seamless Interface to Octave – And Matlab. In: CRAN. The R Foundation, abgerufen am 27. Oktober 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.18.1).</ref> zusätzlich für GNU Octave. Software für Maschinelles Lernen wie Weka und H2O können durch RWeka<ref>Kurt Hornik u. a.: R-Paket RWeka. R/Weka interface. In: CRAN. The R Foundation, abgerufen am 7. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.4-24).</ref> sowie h2o<ref>Spencer Aiello, Tom Kraljevic, Petr Maj u. a.: R-Paket h2o. R Interface for H2O. In: CRAN. The R Foundation, abgerufen am 25. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 3.0.0.30).</ref> eingebunden werden. Die Bibliotheken TensorFlow (tensorflow<ref>Joseph J. Allaire u. a.: R-Paket tensorflow. TensorFlow for R. In: GitHub. Abgerufen am 24. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.7).</ref>) und Caffe (caffeR<ref>Christof Naumzik, Stefan Feuerriegel: R-Paket caffeR. A wrapper for 'caffe'. In: GitHub. Abgerufen am 24. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.2-0).</ref>) für Deep Learning können mit R genutzt werden. Die Programme OpenBUGS (R2OpenBUGS<ref>Andrew Gelman, Neil Thomas u. a.: R-Paket R2OpenBUGS. Running OpenBUGS from R. In: CRAN. The R Foundation, abgerufen am 25. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 3.2-3.1).</ref>), Stan (rstan<ref>Ben Goodrich u. a.: R-Paket rstan. R Interface to Stan. In: CRAN. The R Foundation, abgerufen am 25. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 2.7.0-1).</ref>) und JAGS (rjags<ref>Martyn Plummer, Alexey Stukalov, Matt Denwood: R-Paket rjags. Bayesian Graphical Models using MCMC. In: CRAN. The R Foundation, abgerufen am 25. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 3-15).</ref>) für Bayessche Statistik sowie Gurobi (gurobi<ref>R-Paket gurobi. R API Overview. In: Gurobi Optimization. Abgerufen am 25. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 6.0.0).</ref>) für mathematische Optimierung lassen sich über Pakete einbinden. Mit hexView<ref>Paul Murrell: R-Paket hexView. Viewing Binary Files. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.3-3).</ref> können unter anderem EViews-Dateien eingelesen werden. Mit readxl<ref>Hadley Wickham u. a.: R-Paket readxl. Read Excel Files. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.1.0).</ref> können Microsoft-Excel-Dateien eingelesen werden, mit gnumeric<ref>Karoly Antal: R-Paket gnumeric. Read Data from Files Readable by Gnumeric. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.7-2).</ref> OpenDocuments. Im Bereich der Auszeichnungssprachen für Datenserialisierung gibt es für XML-Dateien das Paket XML<ref>Duncan Temple Lang u. a.: R-Paket XML. Tools for Parsing and Generating XML Within R and S-Plus. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 3.98-1.3).</ref> und yaml<ref>eremy Stephens: R-Paket yaml. Methods to convert R data to YAML and back. In: CRAN. The R Foundation, abgerufen am 19. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 2.1.13).</ref> für YAML-Dateien. Auf das Chemistry Development Kit (Chemoinformatik), welches die Chemical Markup Language verwendet, kann mit rcdk<ref>Rajarshi Guha: R-Paket rcdk. rcdk – Interface to the CDK Libraries. In: CRAN. The R Foundation, abgerufen am 19. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 3.3.2).</ref><ref>Rajarshi Guha: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). In: Journal of Statistical Software. Band 18, Nr. 5, 2007, S. 1–16 (online).</ref> zugegriffen werden. Für wissenschaftliche Daten können die Formate NetCDF und das Hierarchical Data Format mit RNetCDF<ref>Pavel Michna, Milton Woods: R-Paket RNetCDF. Interface to NetCDF Datasets. In: CRAN. The R Foundation, abgerufen am 19. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.7-3).</ref> sowie rhdf5<ref>Bernd Fischer, Gregoire Pau: R-Paket rhdf5. HDF5 interface to R. In: Bioconductor. The R Foundation, abgerufen am 2. Februar 2016 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 2.14.0).</ref> eingelesen werden. Astronomische Daten aus dem Flexible Image Transport System können ebenfalls in R geladen werden – mit FITSio<ref>Andrew Harris: R-Paket FITSio. FITS (Flexible Image Transport System) utilities. In: CRAN. The R Foundation, abgerufen am 19. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 2.0-0).</ref>. R-ArcGIS<ref>Mark Janikas, Shaun Walbridge: R-Paket R-ArcGIS. Install the R ArcGIS Tools. In: GitHub. Abgerufen am 24. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.1.0).</ref>, geosapi<ref>Emmanuel Blondel: R-Paket geosapi. GeoServer REST API R Interface. In: CRAN. The R Foundation, abgerufen am 24. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.1-0).</ref>,RSAGA<ref>Alexander Brenning, Donovan Bangs: R-Paket RSAGA. SAGA Geoprocessing and Terrain Analysis in R. In: CRAN. The R Foundation, abgerufen am 19. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.94-1).</ref>, RQGIS<ref>Jannes Münchow, Patrick Schratz: R-Paket RQGIS. Integrating R with QGIS. In: CRAN. The R Foundation, abgerufen am 24. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.2.0).</ref> und rgrass7<ref>Roger Bivand u. a.: R-Paket rgrass7. Interface Between GRASS 7 Geographical Information System and R. In: CRAN. The R Foundation, abgerufen am 27. Oktober 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.1-3).</ref> bieten Schnittstellen zu den Geoinformationssystemen ArcGIS, GeoServer, SAGA, QGIS und GRASS GIS, aRT<ref>Pedro Ribeiro de Andrade u. a.: R-Paket aRT. R-TerraLib API. In: Laboratório de Estatística e Geoinformação. Universidade Federal do Paraná, abgerufen am 19. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.9-2).</ref> zu TerraLib und rgdal<ref>Roger Bivand: R-Paket rgdal. Bindings for the Geospatial Data Abstraction Library. In: CRAN. The R Foundation, abgerufen am 19. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.0-5).</ref> zur Geospatial Data Abstraction Library für Rasterdaten. Shapefiles und Dateien der Keyhole Markup Language von Google Earth können mit maptools<ref>Roger Bivand u. a.: R-Paket maptools. Tools for Reading and Handling Spatial Objects. In: CRAN. The R Foundation, abgerufen am 27. Oktober 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.8-27).</ref> eingelesen werden. Mit tuneR<ref>Uwe Ligges u. a.: R-Paket tuneR. Analysis of music and speech. In: CRAN. The R Foundation, abgerufen am 12. November 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.2.1).</ref> können MP3-Dateien und Wavesounds in R eingelesen werden, audio<ref>Simon Urbanek: R-Paket audio. Audio Interface for R. In: CRAN. The R Foundation, abgerufen am 12. November 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.1-5).</ref> ermöglicht die akustische Wiedergabe von diesen Audiodateien mit Hilfe des Mediaplayers.
… zu Datenbanken
Mehrere Pakete liefern Schnittstellen um auf Datenbanken zuzugreifen. Dazu zählen im Allgemeinen das Front-End DBI<ref>Hadley Wickham u. a.: R-Paket DBI. R Database Interface. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.3.1).</ref> zusammen mit RODBC<ref>Brian Ripley, Michael Lapsley: R-Paket RODBC. ODBC Database Access. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.3-12).</ref> (ODBC) oder Java-basiert RJDBC<ref>Simon Urbanek: R-Paket RJDBC. Provides access to databases through the JDBC interface. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.2-5).</ref> (JDBC).
Für relationale Datenbanken gibt es zudem RMySQL<ref>Jeroen Ooms u. a.: R-Paket RMySQL. Database Interface and MySQL Driver for R. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.10.3).</ref> (MySQL und MariaDB), RSQLite<ref>Hadley Wickham u. a.: R-Paket RSQLite. SQLite Interface for R. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.0.0).</ref> (SQLite) und teradataR<ref>Teradata: R-Paket teradataR. R package to perform in-database analytics using Teradata database. In: GitHub. Abgerufen am 29. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.1.0).</ref> (Teradata Aster).
Bezüglich objekt-relationalen Datenbanken gibt es die Pakete RSQLServer<ref>Imanuel Costigan: R-Paket RSQLServer. SQL Server DBI for R, based on the jTDS driver. In: GitHub. Abgerufen am 18. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.2.0).</ref> (für Microsoft SQL Server), ibmdbr<ref>Alexander Eckert u. a.: R-Paket ibmdbR. IBM in-Database Analytics for R. In: CRAN. The R Foundation, abgerufen am 18. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.48.0).</ref> (Db2), RPostgreSQL<ref>Tomoaki Nishiyama u. a.: R-Paket RPostgreSQL. R interface to the PostgreSQL database system. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.4).</ref> (PostgreSQL) und ROracle<ref>Denis Mukhin, David A. James, Jake Luciani: R-Paket ROracle. OCI based Oracle database interface for R. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.1-12).</ref> für Oracle-Datenbanken. Das Paket r-exasol<ref>Exasol: R-Paket exasol-r. The EXASOL package for R provides an interface to the EXASOL database. In: GitHub. Abgerufen am 18. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: ?).</ref> ermöglicht die Anbindung an die relationale In-Memory-Datenbank von EXASOL, MonetDB.R<ref>Hannes Mühleisen, Thomas Lumley, Anthony Damico: R-Paket MonetDB.R. Connect MonetDB to R. In: CRAN. The R Foundation, abgerufen am 19. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.9.7).</ref> an die spaltenorientierte Datenbank MonetDB. Für NoSQL- und Key-Value-Datenbanken gibt es RCassandra<ref>Simon Urbanek: R-Paket RCassandra. R/Cassandra interface. In: CRAN. The R Foundation, abgerufen am 18. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.1-3).</ref> (Apache Cassandra) und rredis<ref>Bryan W. Lewis: R-Paket rredis. "Redis" Key/Value Database Client. In: CRAN. The R Foundation, abgerufen am 25. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.7.0).</ref> (Redis), RNeo4j<ref>Nicole White: R-Paket RNeo4j. Neo4j Driver for R. In: CRAN. The R Foundation, abgerufen am 18. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.6.4).</ref> für die Graphdatenbank Neo4j und RCouchDB<ref>Thomas Bock: R-Paket R4CouchDB. A R Convenience Layer for CouchDB 2.0. In: CRAN. The R Foundation, abgerufen am 24. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.7.5).</ref>, rfml<ref>Mats Stellwall, Abdulla Abdurakhmanov: R-Paket rfml. MarkLogic NoSQL Database Server in-Database Analytics for R. In: CRAN. The R Foundation, abgerufen am 18. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.1.0).</ref> sowie mongolite<ref>Jeroen Ooms u. a.: R-Paket mongolite. Fast and Simple 'MongoDB' Client for R. In: CRAN. The R Foundation, abgerufen am 12. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.0).</ref> für die dokumentenorientierten Datenbanken CouchDB, MarkLogic beziehungsweise MongoDB.
SparkR<ref>Spark: R-Paket SparkR. R on Spark. In: Spark. The Apache Software Foundation, abgerufen am 29. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.4.1).</ref><ref>Alexander Neumann: Big-Data-Framework Spark unterstützt R und Python 3. In: heise Developer. 15. Juni 2015, abgerufen am 29. Juli 2015.</ref> bindet R in das Big-Data-Framework Apache Spark ein, welches auf In-Memory-Verarbeitung basiert und rkafka<ref>Shruti Gupta: R-Paket rkafka. Using Apache 'Kafka' Messaging Queue Through 'R'. In: CRAN. The R Foundation, abgerufen am 20. Februar 2016 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.0).</ref> bezieht Nachrichtenprotokolle aus Apache Kafka. RImpala<ref>Vijay Raajaa u. a.: R-Paket RImpala. Using Cloudera 'Impala' Through 'R'. In: CRAN. The R Foundation, abgerufen am 12. November 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.1.6).</ref> verwendet Apache Impala für schnelle interaktive SQL-Abfragen und elastic<ref>Scott Chamberlain: R-Paket elastic. General Purpose Interface to 'Elasticsearch'. In: CRAN. The R Foundation, abgerufen am 24. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.7.8).</ref> verwendet Elasticsearch. SQL-ähnliche Abfragen können mit sqldf<ref>Gabor Grothendieck: R-Paket sqldf. Perform SQL Selects on R Data Frames. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.4-10).</ref> innerhalb von R genutzt werden.
… zu anderen Programmiersprachen
Verschiedene Pakete bieten Schnittstellen zu anderen Programmiersprachen, die zur Performance-Optimierung und zur Erweiterung des Funktionsumfangs eingesetzt werden. Hauptsächlich wird dafür das Paket Rcpp<ref>Dirk Eddelbuettel u. a.: R-Paket Rcpp. Seamless R and C++ Integration. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.11.6).</ref><ref>Dirk Eddelbuettel: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). Springer, New York 2013, ISBN 978-1-4614-6867-7.</ref> verwendet, welches zum Beispiel die Verwendung von C++-Funktionen in externen Quellcode-Dateien oder in R selbst ermöglicht, wobei die Funktionen bei jedem Programm-Ablauf erneut kompiliert werden. rJava<ref>Simon Urbanek: R-Paket rJava. Low-level R to Java interface. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.9-6).</ref> bietet eine Schnittstelle zu Java, rscala für Scala<ref>David B. Dahl u. a.: R-Paket rscala. Bi-Directional Interface Between R and Scala with Callbacks. In: CRAN. The R Foundation, abgerufen am 17. Oktober 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.0.6).</ref> und rPython<ref>Carlos Javier Gil Bellosta: R-Paket rPython. Package allowing R to call Python. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.0-5).</ref> für Python. Der Kommandozeileninterpreter IPython (Jupyter) kann mit IRkernel<ref>Thomas Kluyver u. a.: R-Paket IRkernel. R kernel for IPython. In: GitHub. Abgerufen am 20. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.4).</ref> genutzt werden. Mit rocker<ref>Dirk Eddelbuettel: R-Paket rocker. In: GitHub. Abgerufen am 7. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: NN).</ref> kann R im Rahmen von Docker in virtuellen Containern isoliert werden.
… zu Webservices
Mit rvest<ref>Hadley Wickham u. a.: R-Paket rvest. Easily Harvest (Scrape) Web Pages. In: CRAN. The R Foundation, abgerufen am 15. Dezember 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.3.1).</ref> können Websites gescraped werden um deren HTML-Inhalte in R nutzbar zu machen. Die Funktionsweise ist Beautiful Soup von Python nachempfunden. Verschiedene weitere Pakete sind direkt auf bestimmte Websites zugeschnitten und bieten dort mehr Komfort. Das Paket twitteR<ref>Jeff Gentry: R-Paket twitteR. R Based Twitter Client. In: CRAN. The R Foundation, abgerufen am 2. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.1.8).</ref> erlaubt einen Zugriff auf Beiträge bei Twitter, Rfacebook<ref>Pablo Barbera, Michael Piccirilli: R-Paket Rfacebook. Access to Facebook API via R. In: CRAN. The R Foundation, abgerufen am 2. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.5).</ref> greift auf die Facebook API zu. Mit googleVis<ref>Markus Gesmann, Diego de Castillo, Joe Cheng: R-Paket googleVis. R Interface to Google Charts. In: CRAN. The R Foundation, abgerufen am 2. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.5.8).</ref><ref>Markus Gesmann, Diego de Castillo: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). In: The R Journal. Band 3, Nr. 2, 2011, S. 40–44 (r-project.org [PDF; 505 kB]).</ref> können die Google-Charts genutzt werden, mit RGoogleAnalytics<ref>Michael Pearmain u. a.: R-Paket RGoogleAnalytics. R Wrapper for the Google Analytics API. In: CRAN. The R Foundation, abgerufen am 29. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.1.1).</ref> Google Analytics. Eine Schnittstelle zur OpenStreetMap bietet osmar.<ref>Thomas Schlesinger, Manuel J. A. Eugster: R-Paket osmar. OpenStreetMap and R. In: CRAN. The R Foundation, abgerufen am 27. Oktober 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.1-7).</ref> Dieser Wikipedia-Artikel und weitere Seiten verwandter Projekte lassen sich als HTML oder Wikitext mit WikipediR<ref>Oliver Keyes: R-Paket WikipediR. A MediaWiki API Wrapper. In: CRAN. The R Foundation, abgerufen am 30. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.2.0).</ref> in R laden.
Mit RSelenium<ref>John Harrison: R-Paket RSelenium. R bindings for Selenium WebDriver. In: CRAN. The R Foundation, abgerufen am 15. Dezember 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.3.5).</ref> kann der Selenium-WebDriver eingebunden werden und somit von R aus ein Webbrowser gesteuert werden.<ref>Sharon Machlis: How to drive a Web browser with R (and RSelenium). In: Computerworld. 25. August 2015, abgerufen am 15. Dezember 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> Das Paket mailR<ref>Rahul Premraj: R-Paket mailR. A Utility to Send Emails from R. In: CRAN. The R Foundation, abgerufen am 15. Dezember 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.4.1).</ref> ermöglicht das Senden von E-Mails aus R heraus.
Berichtserstellung
Für Reporting-Zwecke lässt sich R-Code in LaTeX (knitr<ref>Yihui Xie u. a.: R-Paket knitr. A General-Purpose Package for Dynamic Report Generation in R. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.10.5).</ref><ref>Yihui Xie: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). CRC Press – Taylor & Francis Group, Boca Raton 2014, ISBN 978-1-4822-0354-7.</ref>, Sweave) oder HTML beziehungsweise Markdown (knitr, rmarkdown<ref>Joseph J. Allaire u. a.: R-Paket rmarkdown. Dynamic Documents for R. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.7).</ref>) einbinden. knitr bereitet R-Code überdies für die weiteren Auszeichnungssprachen AsciiDoc und reStructuredText auf und bietet eine Anbindung an Pandoc. xtable<ref>David B. Dahl: R-Paket xtable. Export tables to LaTeX or HTML. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.7-4).</ref> erlaubt es Tabellen mit R-Daten zu gestalten und liefert deren LaTeX- sowie HTML-Code. texreg<ref>Philip Leifeld: R-Paket texreg. Conversion of R Regression Output to LaTeX or HTML Tables. In: CRAN. The R Foundation, abgerufen am 24. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.36.23).</ref> und stargazer<ref>Marek Hlavac: R-Paket stargazer. Well-Formatted Regression and Summary Statistics Tables. In: CRAN. The R Foundation, abgerufen am 24. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 5.2).</ref> stellen die Ergebnisse verschiedener Modelle in einer Tabelle dar und unterstützen unterschiedliche Ausgabeformate (Text, HTML, LaTeX). Mit dem Paket ReporteRs<ref>David Gohel u. a.: R-Paket ReporteRs. Microsoft Word, Microsoft Powerpoint and HTML Documents Generation. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.7.8).</ref> lassen sich unter anderem Vektorgrafiken erstellen, die auch nachträglich in Microsoft Word und PowerPoint bearbeitet werden können. tikzDevice<ref>Kirill Müller u. a.: R-Paket tikzDevice. R Graphics Output in LaTeX Format. In: CRAN. The R Foundation, abgerufen am 25. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.8.1).</ref> erstellt den Code der oft in LaTeX verwendeten PGF/TikZ-Grafiken. jsonlite<ref>Jeroen Ooms, Duncan Temple Lang, Lloyd Hilaiel: R-Paket jsonlite. A Robust, High Performance JSON Parser and Generator for R. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.9.16).</ref> ermöglicht es, Data-Frames als JSON-Objekte zu speichern.
Grafikerstellung
Das Paket lattice<ref>Deepayan Sarkar: R-Paket lattice. Lattice Graphics. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.20-31).</ref><ref>Deepayan Sarkar: Lattice: Multivariate Data Visualization with R. Springer, New York 2008, ISBN 978-0-387-75968-5.</ref> setzt die Idee der Trellis-Grafiken<ref>Richard A. Becker, William S. Cleveland, Ming-Jen Shyu: The Visual Design and Control of Trellis Display. In: Journal of Computational and Graphical Statistics. Band 5, Nr. 2, 1996, S. 123–155.</ref> zur Visualisierung von multivariaten Daten um. ggplot2<ref>Hadley Wickham: R-Paket ggplot2. An Implementation of the Grammar of Graphics. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.0.1).</ref><ref>Hadley Wickham, Carson Sievert: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). 2. Auflage. Springer, 2015, ISBN 978-3-319-24275-0 (Material).</ref> ermöglicht es ebenfalls, durch größere Abstraktion schneller komplexe Grafiken zu erstellen. Dieses Paket ist eine Implementierung von Leland Wilkinsons Grammar of Graphics<ref>Leland Wilkinson: The Grammar of Graphics. Springer, New York 1999, ISBN 0-387-98774-6.</ref>. Mit ggvis<ref>Winston Chang: R-Paket ggvis. Interactive Grammar of Graphics. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.4.2).</ref> (basieren auf ggplot2) und plotly<ref>Carson Sievert u. a.: R-Paket plotly. In: GitHub. Abgerufen am 25. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.0.6).</ref> und shiny<ref>Winston Chang u. a.: R-Paket shiny. Web Application Framework for R. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.12.1).</ref> lassen sich interaktive, web-basierte Grafiken erstellen. rgl<ref>Daniel Adler, Duncan Murdoch et al.: R-Paket rgl. 3D Visualization Using OpenGL. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.95.1247).</ref> eignet sich für interaktive dreidimensionale Grafiken. Bei der Grafikerstellung unterstützen zudem die Pakete scales<ref>Hadley Wickham u. a.: R-Paket scales. Scale Functions for Visualization. In: CRAN. The R Foundation, abgerufen am 5. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.2.5).</ref> (Zuordnung von Daten auf ästhetische Elemente) sowie labeling<ref>Justin Talbot: R-Paket labeling. Axis Labeling. In: CRAN. The R Foundation, abgerufen am 5. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.3).</ref> (weitere Achsenbeschriftungs-Optionen). Die Graph Modelling Language und ihre Anwendung in Grafiken zur Netzwerkanalyse wird durch igraph<ref>Gabor Csardi u. a.: R-Paket igraph. Network Analysis and Visualization. In: CRAN. The R Foundation, abgerufen am 19. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.0.1).</ref> implementiert. Auch auf das Graphviz kann zur Graph-Visualisierung mit Rgraphviz<ref>Kasper Daniel Hansen u. a.: R-Paket Rgraphviz. Provides plotting capabilities for R graph objects. In: Bioconductor. The R Foundation, abgerufen am 24. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 2.18.0).</ref> zugegriffen werden. Turtle-Grafiken können mit TurtleGraphics<ref>Barbara Zogala-Siudem u. a.: R-Paket TurtleGraphics. Turtle graphics in R. In: CRAN. The R Foundation, abgerufen am 19. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.0-5).</ref> umgesetzt werden. Ebenfalls der Veranschaulichung dienen animierte Konzepte aus der Statistik im Paket animation,<ref>Yihui Xie u. a.: R-Paket animation. A Gallery of Animations in Statistics and Utilities to Create Animations. In: CRAN. The R Foundation, abgerufen am 19. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 2.4).</ref> das außerdem Funktionen liefert, um eigene Animationen in R umzusetzen.
Mit dem Paket munsell<ref>Charlotte Wickham: R-Paket munsell. Munsell colour system. In: CRAN. The R Foundation, abgerufen am 5. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.4.2).</ref> kann das Munsell-Farbsystem genutzt werden, mit Hilfe von colorspace<ref>Achim Zeileis u. a.: R-Paket colorspace. Color Space Manipulation. In: CRAN. The R Foundation, abgerufen am 5. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.2-6).</ref> lassen sich Farbzuordnungen innerhalb einer großen Zahl an Farbsystemen realisieren. Der RColorBrewer<ref>Erich Neuwirth: R-Paket RColorBrewer. ColorBrewer Palettes. In: CRAN. The R Foundation, abgerufen am 5. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.1-2).</ref> kann eine Farbpalette nach benutzerdefinierten Vorgaben erzeugen, etwa zur Kolorierung von Landkarten.
Datenmanagement
Im Bereich Datenmanagement vereinfacht plyr<ref>Hadley Wickham: R-Paket plyr. Tools for Splitting, Applying and Combining Data. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.8.3).</ref><ref>Hadley Wickham: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). In: Journal of Statistical Software. Band 40, Nr. 1, 2011, S. 1–29 (online).</ref> das Bearbeiten von Listen, dplyr<ref>Hadley Wickham u. a.: R-Paket dplyr. A Grammar of Data Manipulation. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.4.2).</ref> das von Data-Frames, tidyr<ref>Hadley Wickham u. a.: R-Paket tidyr. Easily Tidy Data with spread() and gather() Functions. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.2.0).</ref> das Transformieren von Data-Frames (Wide-Format und Long-Format), stringi<ref>Marek Gagolewski u. a.: R-Paket stringi. Character String Processing Facilities. In: CRAN. The R Foundation, abgerufen am 5. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.5-5).</ref> und stringr<ref>Hadley Wickham u. a.: R-Paket stringr. Simple, Consistent Wrappers for Common String Operations. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.0.0).</ref><ref>Hadley Wickham: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). In: The R Journal. Band 2, Nr. 2, 2010, S. 38–40 (r-project.org [PDF; 121 kB]).</ref> die Bearbeitung von Zeichenketten, lubridate<ref>Garrett Grolemund u. a.: R-Paket lubridate. Make dealing with dates a little easier. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.3.3).</ref><ref>Garrett Grolemund, Hadley Wickham: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). In: Journal of Statistical Software. Band 40, Nr. 3, 2011, S. 1–25 (online).</ref> das Editieren von Datums- und Zeitangaben und zoo<ref>Achim Zeileis u. a.: R-Paket zoo. S3 Infrastructure for Regular and Irregular Time Series (Z’s Ordered Observations). In: CRAN. The R Foundation, abgerufen am 5. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.7-12).</ref><ref>Achim Zeileis, Gabor Grothendieck: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). In: Journal of Statistical Software. Band 14, Nr. 6, 2005, S. 1–27 (online).</ref> den Umgang mit Zeitreihen. data.table<ref>Matthew Dowle u. a.: R-Paket data.table. Extension of data.frame. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.9.4).</ref> ist eine effizientere Version mit erweitertem Funktionsumfang anstelle von Data-Frames. Ein Message Passing Interface für den Nachrichtenaustausch bei parallelen Berechnungen auf verteilten Computersystemen kann entweder per Master/Slave (Rmpi<ref>Hao Yu: R-Paket Rmpi. Interface (Wrapper) to MPI (Message-Passing Interface). In: CRAN. The R Foundation, abgerufen am 19. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.6-5).</ref>) oder per SPMD (pbdMPI<ref>Wei-Chen Chen: R-Paket pbdMPI. Programming with Big Data – Interface to MPI. In: CRAN. The R Foundation, abgerufen am 19. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.2-5).</ref>) umgesetzt werden. Die CUDA-Technik von Nvidia kann mit Hilfe von gputools<ref>Josh Buckner, Mark Seligman, Justin Wilson: R-Paket gputools. A few GPU enabled functions. In: CRAN. The R Foundation, abgerufen am 19. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.28).</ref> realisiert werden. Durch digest<ref>Dirk Eddelbuettel u. a.: R-Paket digest. Create Cryptographic Hash Digests of R Objects. In: CRAN. The R Foundation, abgerufen am 5. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.6.8).</ref> lassen sich verschiedene kryptologische Hashfunktionen auf R-Objekte anwenden.
Entwicklerwerkzeuge
Mit devtools<ref>Hadley Wickham u. a.: R-Paket devtools. Tools to Make Developing R Packages Easier. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.8.0).</ref> können eigene Pakete erstellt, installiert und überprüft werden. roxygen2<ref>Hadley Wickham u. a.: R-Paket roxygen2. In-Source Documentation for R. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 4.1.1).</ref> unterstützt ihre Dokumentierung. RUnit<ref>Matthias Burger, Klaus Juenemann, Thomas Koenig: R-Paket RUnit. R Unit Test Framework. In: CRAN. The R Foundation, abgerufen am 19. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.4.29).</ref> (xUnit) und testthat<ref>Hadley Wickham u. a.: R-Paket testthat. Unit Testing for R. In: CRAN. The R Foundation, abgerufen am 19. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.10.0).</ref> ermöglichen automatisierte Softwaretests. Das Paket sos<ref>Spencer Graves, Sundar Dorai-Raj, Romain François: R-Paket sos. Search contributed R packages, sort by package. In: CRAN. The R Foundation, abgerufen am 5. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.3-8).</ref><ref>Spencer Graves, Sundar Dorai-Raj, Romain François: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). In: The R Journal. Band 1, Nr. 2, 2009, S. 56–59 (r-project.org [PDF; 141 kB]).</ref> ermöglicht es, R und R-Pakete nach Funktionen zu durchsuchen. installr<ref>Tal Galili u. a.: R-Paket installr. Using R to Install Stuff (Such As: R, Rtools, RStudio, Git, and More!). In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.16.0).</ref> aktualisiert R und andere Software (unter Windows). Mit dem Pipe-Operator (%>%) aus dem Paket magrittr<ref>Stefan Milton Bache, Hadley Wickham: R-Paket magrittr. A Forward-Pipe Operator for R. In: CRAN. The R Foundation, abgerufen am 5. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.5).</ref> lassen sich R-Funktionen sequenziell ausführen anstatt sie ineinander zu verschachteln um bessere Code-Lesbarkeit zu erzielen.
Benutzeroberfläche
Die R-Installation beinhaltet RGui, eine Oberfläche, in der R in einer Art Kommandozeilenumgebung läuft. Ein paar Menübefehle ermöglichen Zugriff auf Hilfe, Paketverwaltung, Operationen bezüglich der Arbeitsumgebung sowie die Möglichkeit Skriptdateien zu erstellen und auszuführen.
Externe Benutzeroberflächen
Mehrere grafische Benutzeroberflächen und integrierte Entwicklungsumgebungen bieten weitere Möglichkeiten bei der Arbeit mit R. Dazu zählen RStudio<ref>Joseph J. Allaire u. a.: RStudio. In: RStudio. Abgerufen am 29. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.99.463).</ref> (auch als Version für Linux-Server erhältlich), Visual Studio Code<ref>Rainald Menge-Sonnentag: Microsoft öffnet Visual Studio für Programmiersprache R. In: heise Developer. 10. März 2016, abgerufen am 13. März 2016.</ref> von Microsoft, die Java-basierte Benutzeroberfläche JGR<ref>Markus Helbig, Simon Urbanek, Ian Fellows: JGR – Java GUI for R. In: RForge. The R Foundation, abgerufen am 7. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.7-16).</ref> (Jaguar, Java GUI for R), RKWard, R AnalyticFlow<ref>Ef-prime: Features. In: R AnalyticFlow. Ef-prime, abgerufen am 12. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 3.0.6).</ref>, die Mathematik-Software Cantor<ref>Alexander Rieder: Cantor. In: KDEdu. KDE e. V., abgerufen am 12. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.1).</ref>, die cloud-basierte Number Analytics<ref>Number Analytics Software: R for Business. In: Number Analytics. Number Analytics LLC, abgerufen am 2. Februar 2016 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> für Einsteiger sowie StatET<ref>Dominik Mohilo: Neu im Eclipse-Universum: StatET – die IDE für professionelle R-Programmierung. Endlich daheim. In: Jaxenter. 11. Juli 2016, abgerufen am 11. Juli 2016.</ref> (Eclipse) und der darauf aufbauende Architect.<ref><templatestyles src="Webarchiv/styles.css" />Architect ( vom 13. März 2017 im Internet Archive)</ref> Sie zeichnen sich im Wesentlichen durch Autovervollständigung, automatische Einrückungen, Syntaxhervorhebung, Code-Faltung, integrierte Hilfe, Informationen zu Objekten in der Arbeitsumgebung und Daten-Viewer oder -Editoren aus. Erweiterte Entwicklungsoptionen wie Versionsverwaltung mit Git oder grafisches Debugging sind teilweise enthalten.
Benutzeroberflächen in Paketen
Zwei umfangreiche grafische Benutzeroberflächen, die als Pakete in R bereitgestellt werden, sind der R-Commander (Paketname: Rcmdr<ref>John Fox u. a.: R-Paket Rcmdr. R Commander. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 2.1-7).</ref>) und relax<ref>Hans Peter Wolf: R-Paket relax. relax – R Editor for Literate Analysis and lateX. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.3.15).</ref>. Bei beiden lassen sich einige wichtige Prozeduren der explorativen und analytischen Statistik über ein Menüsystem aufrufen. Ebenso können über das Menü Standardgrafiken erzeugt werden. Der R-Commander ist betriebssystemunabhängig geschrieben und erleichtert das Datenmanagement sowie das Schreiben von Skripten.<ref>John Fox: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). In: Journal of Statistical Software. Band 14, Nr. 9, 2005, S. 1–42 (online).</ref> relax ist speziell darauf konzipiert die Datenanalyse und Dokumentation der Ergebnisse im Stil des Literate programming in ein Dokument zu integrieren (vergleiche Sweave).
Des Weiteren gibt es das Paket rattle<ref>Graham Williams u. a.: R-Paket rattle. Graphical user interface for data mining in R. In: CRAN. The R Foundation, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 3.4.1).</ref><ref>Graham Williams: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). Springer, New York 2011, ISBN 978-1-4419-9889-7.</ref>, welches als grafische Benutzeroberfläche einen Einstieg in Data-Mining-Projekte bietet. RQDA<ref>Huang Ronggui: R-Paket RQDA. R-based Qualitative Data Analysis. In: CRAN. The R Foundation, abgerufen am 19. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.2-7).</ref> ist eine grafische Benutzeroberfläche für qualitative Datenanalyse, statnet<ref>Martina Morris u. a.: R-Paket statnet. Software Tools for the Statistical Analysis of Network Data. In: CRAN. The R Foundation, abgerufen am 25. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 2015.6.2).</ref> für Netzwerkanalyse. Der Deducer<ref>Ian Fellows u. a.: R-Paket Deducer. Deducer: A data analysis GUI for R. In: CRAN. The R Foundation, abgerufen am 7. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.7-7).</ref> eignet sich vor allem zum Bearbeiten von Data-Frames. Ein weiteres Paket ist pmg.<ref>John Verzani, Yvonnick Noel: R-Paket pmg. Poor Man’s GUI. In: CRAN. The R Foundation, abgerufen am 16. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.9-43).</ref>
Grafische Benutzeroberflächen wie diese lassen sich mit Tk, GTK (mit Hilfe des Pakets RGtk2<ref>Michael Lawrence, Duncan Temple Lang: R-Paket RGtk2. R bindings for Gtk 2.8.0 and above. In: CRAN. The R Foundation, abgerufen am 19. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 2.20.31).</ref>) oder Qt (qtbase<ref>Michael Lawrence, Deepayan Sarkar: R-Paket qtbase. Interface Between R and Qt. In: CRAN. The R Foundation, abgerufen am 25. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.0.11).</ref>) erstellen.
Editoren
Die Editoren Notepad++<ref>Andrew Redd: NppToR: R in Notepad++. In: SourceForge. Abgerufen am 7. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 2.6.3).</ref>, Bluefish<ref>Olivier Sessink: Bluefish Features. In: Bluefish. Abgerufen am 12. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 2.2.7).</ref>, CodeMirror<ref>Ubalo: R mode. In: CodeMirror. Marijn Haverbeke, abgerufen am 12. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>, Emacs<ref>Anthony J. Rossini: ESS – version 15.03-1. In: ESS. Abgerufen am 7. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 15.03-1).</ref> / Aquamacs<ref>Aquamacs: Features: Why use Aquamacs? In: Aquamacs. Abgerufen am 16. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 3.2).</ref>, Geany<ref>Enrico Tröger u. a.: Supported Filetypes. In: Geany. Abgerufen am 12. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.25).</ref>, gedit<ref>Dan Dediu: Welcome to Rgedit. In: SourceForge. Abgerufen am 7. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>, jEdit<ref>Jose Claudio Faria: R syntax. In: jEdit Community. Björn Kautler, abgerufen am 7. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>, Kate, SciTE<ref>Neil Hodgson: SciTE Documentation. In: SciTE. Scintilla, abgerufen am 12. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 3.6.0).</ref>, Smultron<ref>Peter Borg: Smultron. An elegant and powerful text editor that is easy to use. In: Peter Borg Apps. Peter Borg Apps AB, abgerufen am 7. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>, Sublime Text<ref>Kevin Johnson: Using R in Sublime Text 3. In: kevjohnson.org. 10. Februar 2014, abgerufen am 7. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>, TextMate<ref>Jim Barritt: Using TextMate with R. In: non-random ramble. 16. November 2010, abgerufen am 7. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>, TextPad<ref>Tobias Elze, Paul Renaud: add-ons. syntax definition files: R. In: TextPad. Helios Software Solutions, abgerufen am 7. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>, Tinn<ref>Ricardo Pietrobon: Tinn-R. In: LEC. {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value), archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am 13. Juli 2015; abgerufen am 7. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 4.0.3.5). Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.</ref>, Vim<ref>Jakson Aquino: Vim-R-plugin: Plugin to work with R. In: Vim. Abgerufen am 7. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.2.6).</ref>, WinEdt<ref>Uwe Ligges, Gilbert Ritschard, Karl Koeller: R-Paket RWinEdt. R Interface to WinEdt. In: CRAN. The R Foundation, abgerufen am 7. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 2.0-4).</ref> und TextWrangler<ref>Johannes W. Dietrich: TextWrangler. In: Formatio Reticularis. Abgerufen am 7. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> sowie SubEthaEdit<ref>Johannes W. Dietrich: SubEthaEdit. In: Formatio Reticularis. Abgerufen am 7. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> unterstützen R entweder nativ oder mithilfe entsprechender Erweiterungen.
Textverarbeitungswerkzeuge
Die Textverarbeitungssysteme GNU TeXmacs<ref>Chu-Ching Huang, Joris van der Hoeven: Using GNU R sessions inside TeXmacs. In: GNU TeXmacs. Abgerufen am 16. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>, LyX<ref>Paul E. Johnson, Gregor Gorjanc: LyX with R through Sweave. How to use LyX together with R through Sweave. In: LyX. The LyX Project, abgerufen am 7. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> (mit Sweave oder knitr) und ShareLaTeX<ref>ShareLaTeX: Knitr. In: ShareLaTeX. Abgerufen am 26. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> (knitr) binden R ein, das Software-Dokumentationswerkzeug Natural Docs<ref><templatestyles src="Webarchiv/styles.css" />Language Support ( vom 20. August 2015 im Internet Archive)</ref> und Travis CI<ref>Travis CI: Building an R Project. In: Travis CI. Abgerufen am 26. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> für kontinuierliche Integration ebenfalls. Die Notiz-Software Org-mode<ref>Org-mode: R Source Code Blocks in Org Mode. In: Org-mode. Abgerufen am 30. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> und Zim<ref>Zim: Zim – A Desktop Wiki. GNU R Plot Editor. In: Zim. Abgerufen am 16. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> nutzen R für Grafiken und ermöglichen eine interaktive Bearbeitung.
Einbindungen
Alternative Open-Source-Interpreter
Mehrere alternative Interpreter wurden entwickelt, etwa um R leistungsfähiger zu machen und besser in bestehende Software zu integrieren. pqR<ref>Radford Neal: pqR – a pretty quick version of R. In: pqR-project. Radford Neal, abgerufen am 20. Juni 2019 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> ist ein schnellerer R-Interpreter und eine Abspaltung von GNU R. pqr eignet sich für parallele Programmierung, da automatisch mehrere Prozessorkerne genutzt werden können. Der Interpreter ist in C geschrieben und nur unter Linux lauffähig; viele R (CRAN) Pakete laufen auch unter pqR, aber nicht alle.<ref>Radford Neal: Packages tested with pqR. In: github.com. Abgerufen am 24. September 2019 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
Der Interpreter Renjin<ref>Renjin: Why Renjin. In: Renjin. Abgerufen am 19. November 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> basiert auf der Java Virtual Machine und zeichnet sich durch implizite Nebenläufigkeit, Just-in-time-Kompilierung von Bytecode und eine bessere Implementierung von Java aus. Garbage Collection findet parallelisiert statt. Es ist möglich, Code bei Platform-as-a-Service-Providern wie Google App Engine, Amazon Beanstalk oder Salesforce Heroku abzulegen. Renjin wird durch das Unternehmen BeDataDriven unterstützt.
FastR<ref>Tomas Kalibera, Petr Maj, Floréal Morandat, Jan Vitek: FastR. In: GitHub. Abgerufen am 19. November 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> ist ein javabasierter Interpreter, der auf den Truffle-Interpreter und den Graal-Byte-Compiler aufgesetzt wurde. Er ist in Zusammenarbeit der Oracle Labs mit der Purdue University und der Universität Linz entstanden und ermöglicht Nebenläufigkeit.
Riposte<ref>Justin Talbot: a fast interpreter and JIT for R. In: GitHub. Abgerufen am 19. November 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> ist ein in C++ neu geschriebener und schnellerer Interpreter unterstützt von Tableau für Linux, der ebenfalls Just-in-time-Kompilierung von Bytecode nutzt. Die Lazy Evaluation von R wurde dabei überarbeitet, sodass weniger interne Variablen in Zwischenschritten erstellt werden. Riposte ermöglicht implizite Nebenläufigkeit mit mehreren Kernen und verwendet Streaming SIMD Extensions sowie Advanced Vector Extensions von Prozessoren.
Ein weiterer Interpreter ist CXXR<ref>Andrew Runnalls: CXXR: Refactorising R into C++. In: University of Kent, School of Computing. University of Kent, abgerufen am 19. November 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> von der University of Kent mit Unterstützung von Google, der als in C++ geschriebene Abspaltung Modifikationen am R-Interpreter vornimmt. Anlass des Entwickelns war das Fehlen einer S-PLUS-Funktion in R, die es ermöglicht den Code zu betrachten, der zur Erstellung eines bestimmten Objektes geführt hat. Außerdem wurde die Dokumentation verbessert.
Einbindung in Business-Plattformen
Revolution Analytics hat die Analyse-Plattform Revolution R erschaffen, die R-Funktionen zusammen mit selbst entwickelten Komponenten anbietet. Im April 2015 schloss Microsoft den Kauf von Revolution Analytics ab.<ref>Alexander Neumann: Programmiersprache R: Microsoft schließt Übernahme von Revolution Analytics ab. In: heise Developer. 8. April 2015, abgerufen am 5. Juli 2015.</ref> Außer der Windows-Version läuft Revolution R Enterprise jetzt als Microsoft R Server; dies betrifft portierte Versionen für Hadoop (Hortonworks, Cloudera, MapR) für die Teradata-Datenbank, für Red Hat Linux, den SUSE Linux Enterprise Server, Apache Spark<ref>Alexander Neumann: Microsofts R Server unterstützt jetzt auch Apache Spark. In: heise Developer. 5. Juli 2016, abgerufen am 11. Juli 2016.</ref>, die Cloud-Computing-Plattform Microsoft Azure<ref>Alexander Neumann: Programmiersprache R: Revolution R Enterprise als Azure-Service verfügbar. In: heise Developer. 4. September 2015, abgerufen am 8. Januar 2016.</ref> und den SQL-Server.<ref>Alexander Neumann: Programmiersprache R: Microsoft stellt Analytics-Produkte auf R-Basis vor. In: heise Developer. 7. Januar 2016, abgerufen am 8. Januar 2016.</ref>
Der Microsoft R Server besteht aus der kostenlosen Komponente Microsoft R Open sowie Distributed R (Normalisierung, Portierung), ScaleR (Interpreter mit Big-Data-R-Funktionen), ConnectR (Schnittstellen), DevelopR (Entwicklungsumgebung) und DeployR für Web-Services. Microsoft R Open führt erste Performance-Verbesserungen ein durch die Ersetzung von BLAS und LAPACK mit der Intel Math Kernel Library. ScaleR ist ein optimierter Interpreter und beinhaltet zahlreiche R-Funktionen, die besonders für Big-Data-Analysen geeignet sind und mit dem Präfix Rx beginnen. Dazu zählt das Einlesen von Daten in Datenblöcken, eine Ausführung von Skripten im Rechnerverbund statt nur lokal und statistische Analysefunktionen, die in C++ neu geschrieben wurden und parallelisiert angewandt werden können. ConnectR stellt Schnittstellen zu anderen Dateiformaten und Datenbanken (Textdateien, SQL-Server, ODBC-Datenbanken, SAS, SPSS, Teradata) für das eigene .xdf-Datenformat bereit. .xdf braucht keinen Parser, ist circa fünfmal kleiner als eine .csv-Datei und Daten werden dabei nur dann eingelesen, wenn sie benötigt werden. Durch die Speicherung auf der Festplatte gilt die Begrenzung durch den internen Speicher nicht mehr. DevelopR liefert eine schnelle interaktive Entwicklungsumgebung basierend auf Visual Studio beziehungsweise RStudio für Linux-User. DeployR bringt eine Schnittstelle für Web-Applikationen zum R-Code, eingebettet mit Werkzeugen zur Authentifizierung, Informationssicherheit, Monitoring, Ressourcenmanagement, einem Sitzungsmanager sowie einer REST-API für JSON und XML. Web-Applikationen können als Client in Java, JavaScript/Node.js und für das .Net-Framework geschrieben werden. Die Webservices werden über einen Apache-Tomcat-Server verwaltet, die Datenbank mit Hilfe von MongoDB.<ref>Rich Calaway: Microsoft R Services 2016 Getting Started Guide. (PDF) In: Microsoft. Microsoft Corporation, abgerufen am 22. Juni 2016 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
Seit 2016 ist R in den Microsoft-SQL-Server integriert.<ref>Julia Schmidt: Microsoft SQL Server 2016 soll Analyseszenarien vereinfachen. In: heise Developer. 2. Juni 2016, abgerufen am 11. Juli 2016.</ref> Die Analysesoftware Predixion Insight von Predixion Software als Teil von Microsoft Business Intelligence verband R zuvor mit dem SQL-Server und anderen Big-Data-Technologien.
TIBCO Spotfire Analytics hat mit TIBCO Enterprise Runtime for R<ref>Tibco Spotfire: Unleash the agility of R for the Enterprise. In: Tibco Spotfire. TIBCO Software Inc., abgerufen am 5. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> (TERR) eine Analyse-Plattform, die einen in C++ neu geschriebenen R-Interpreter beinhaltet. Jeder Datentyp wird dabei als abstrakte C++-Klasse dargestellt; zudem ist eine native C++-Schnittstelle ein Bestandteil. TIBCO stellt außerdem den kommerziellen Dialekt von S (S-PLUS) bereit und mit StreamBase<ref>Tibco StreamBase: TIBCO StreamBase. Streaming analytics for accelerating action. In: Tibco StreamBase. TIBCO Software Inc., abgerufen am 12. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> eine Plattform für Complex Event Processing mit R-Integration.
Oracle verkündete im Oktober 2011 die Big Data Appliance<ref>Timothy Prickett Morgan: Oracle rolls its own NoSQL and Hadoop. A supremely confident Ellison mounts the Big Data elephant. In: The Register. Situation Publishing Ltd., 3. Oktober 2011, abgerufen am 5. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>, die R, Apache Hadoop, Oracle Linux, und mit Hardware von Exadata eine NoSQL-Datenbank verknüpft. Wichtigster R-Bestandteil ist dabei Oracle R Enterprise<ref>Chris Kanaracus: Oracle Stakes Claim in R With Advanced Analytics Launch. In: PCWorld. 8. Februar 2012, abgerufen am 5. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> (ORE), wobei R-Objekte direkt in der Oracle-Datenbank analysiert werden, was die Effizienz erhöht. Es findet eine implizite Übersetzung von R nach SQL statt. ORE und Oracle Data Mining (ODM), welches eigene R-Funktionen für Data-Mining enthält, bilden die Oracle Advanced Analytics Option.
IBM bietet eine Integration von R in die eigene InfoSphere BigInsights, welche Hadoop as a Service inklusive HBase und Hive beinhaltet und an einige Datenbanken und Webservices angebunden werden kann. Die R-Komponente nennt sich Big R<ref>Thomas Hafen: Die wichtigsten Big-Data-Tools aus der Cloud. IBM Analytics. In: Computerwoche. 25. Januar 2016, abgerufen am 2. Februar 2016.</ref>. Auch mit der Spectrum Symphony<ref>IBM Spectrum Symphony and R. In: IBM Knowledge Center. Abgerufen am 12. März 2017.</ref> sind mittels R Analysen möglich. Das Tochterunternehmen Netezza bindet R in das Hauptprodukt, die In-Memory-Datenbank TwinFin<ref>Klint Finley: Big Data Team-Up. IBM Netezza and Revolution Analytics Brining R to the Data Warehouse. In: ReadWrite. ReadWrite Inc., abgerufen am 12. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> für schnelle Analysen großer Datenmengen ein.
SAP ermöglicht eine R-Anbindung über die In-Memory-Datenbank HANA.<ref>Alexander Neumann: SAP positioniert HANA auch als Entwicklungsplattform. In: heise Developer. 16. Mai 2012, abgerufen am 5. Juli 2015.</ref> Zudem wurden beim Tochterunternehmen Sybase mit Hilfe von R die Analysemöglichkeiten für Börsendaten in der Software RAP<ref>Adrian Bridgwater: Sybase Integrates RAP With R Stat Programming Language. In: Dr. Dobb’s. UBM plc, 10. November 2011, abgerufen am 12. November 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> verbessert.
Hewlett-Packard entwickelte Distributed R, welches R-Funktionen für Analysen auf großen Datenmengen auf Grundlage von verteiltem Rechnen implementiert. Distributed R ist zusammen mit der Vertica-Datenbank Bestandteil der Software HP Haven Predictive Analytics.<ref>Linux-Magazin: HP macht R fit für Big Data. In: Linux-Magazin. 18. Februar 2015, abgerufen am 8. Januar 2016.</ref>
MicroStrategy ermöglicht eine Integration von R mit dem R Integration Pack<ref>MicroStrategy: MicroStrategy R Integration Pack. In: CodePlex. Microsoft Corporation, abgerufen am 29. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>, Information Builders mit WebFOCUS<ref>WebFOCUS 8. In: Information Builders. Abgerufen am 19. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>. In die Dundas BI von Dundas Data Visualization<ref>R Language Analysis. In: Dundas BI. Abgerufen am 7. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> kann R eingebunden werden, ebenso in Tableau<ref>Elaine Chen: R und Tableau verwenden. In: tableau. Tableau Software Inc., abgerufen am 12. März 2017.</ref> und QlikView<ref>QlikView: QlikView R Connector. In: BI Consult. Qlik Technologies Inc., abgerufen am 12. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>. Zementis modelliert mit der Predictive Model Markup Language<ref><templatestyles src="Webarchiv/styles.css" />By Platform ( vom 26. September 2015 im Internet Archive)</ref><ref>Graham Williams u. a.: R-Paket pmml. Generate PMML for Various Models. In: CRAN. The R Foundation, abgerufen am 12. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.5.0).</ref> Data-Mining-Fragestellungen einheitlich, führt sie in R aus und überführt sie in die eigenen Produkte ADAPA und UPPI. Techila<ref>Techila Technologies: Techila Grid Technology. In: Techila Technologies. Techila Technologies Ltd, 26. September 2008, abgerufen am 8. März 2016 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> integriert R zur Anwendungsprogrammierung mit verteiltem Rechnen. Innerhalb des icCube-Servers<ref>icCube: MDX / R Integration. In: icCube. icCube Software SARL, abgerufen am 12. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> kann R für Online Analytical Processing verwendet werden. Mit R-Integration<ref>Hannes Mühleisen: Embedded R in MonetDB. In: MonetDB. MonetDB B.V., 31. Oktober 2014, archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am 13. November 2014; abgerufen am 16. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)). Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.</ref> ermöglicht MonetDB die Einbindung von R.
Einbindung in Software
Die meisten wichtigen Software-Pakete, bei denen Statistik oder Mathematik einen Schwerpunkt bildet, stellen Schnittstellen zu R bereit oder bieten eine Integration. Dies sind SAS<ref>SAS Customer Support: R Interface Now Available in SAS/IML Studio. In: SAS. SAS Institute Inc., abgerufen am 5. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> und JMP<ref>JMP Online Documentation: Working with R. In: JMP. SAS Institute Inc., abgerufen am 5. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>, SPSS<ref>Catherine Dalzell: Calling R from SPSS. An introduction to the R plug-in for SPSS. In: IBM developerWorks. 31. Oktober 2013, abgerufen am 5. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>, MATLAB<ref>Robert Henson: MATLAB-Paket R-link. Functions for calling the statistical package R from within MATLAB. In: MATLAB Central. The MathWorks, Inc, 1. Juni 2004, abgerufen am 12. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.1.0.1).</ref>, Maple<ref>Maplesoft: Code Generation. In: Maplesoft. Waterloo Maple Inc., abgerufen am 27. Oktober 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>, Sage<ref>Sage: SageMath. In: Sage. SageMath Foundation, abgerufen am 12. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>, Mathematica<ref>Built-in Integration with R. In: Wolfram. Abgerufen am 5. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>, Statistica<ref>Jürgen Schreier: Statistica verfügt jetzt über Schnittstelle zur Programmiersprache R. In: MM MaschinenMarkt. 1. September 2008, abgerufen am 26. Mai 2016.</ref>, gretl<ref>Allin Cottrell, Riccardo Lucchetti: gretl and R. In: SourceForge. Abgerufen am 12. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>, Showgun<ref>Shogun: Eierlegendewollmilchsau Interface. In: Shogun. Archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am 13. März 2017; abgerufen am 12. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>, RapidMiner<ref>Thomas Ott: RapidMiner vs R. How to use Python and R together with RapidMiner. In: RapidMiner. 13. September 2016, abgerufen am 12. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>, KNIME<ref>KNIME: KNIME and R. (PDF) The best of two worlds. In: KNIME. KNIME.com AG, abgerufen am 12. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> sowie Mondrian<ref>Martin Theus: About. In: Mondrian. theusRus, 29. August 2013, abgerufen am 30. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>, ASReml<ref><templatestyles src="Webarchiv/styles.css" />ASReml ( vom 17. November 2015 im Internet Archive)</ref> und das WPS<ref>Stuart Parkerson: World Programming Releases Free Edition of Big Data Analytics Software. In: App Developer Magazine. 22. April 2016, abgerufen am 26. Mai 2016 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>. Für Excel gibt es das R-Plug-in RExcel.<ref>Rainer Muche, Stefanie Lanzinger, Michael Rau: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). Springer, Berlin 2011, ISBN 978-3-642-19483-2.</ref><ref>Statconn: Powerful data analysis from inside your favorite application. In: Statconn. Abgerufen am 16. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
Außerdem bieten das Geoinformationssystem ArcGIS<ref>Alexander Neumann: Programmiersprache R: Esri baut Brücke für R-Community zu Geoinformationsdaten. In: heise Developer. 21. Juli 2015, abgerufen am 8. Januar 2016.</ref> von ESRI, AFNI<ref>AFNI: Build R. In: AFNI. National Institutes of Health, abgerufen am 12. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> (Neurowissenschaften), Bioclipse<ref>Bioclipse: Bioclipse-R. In: Bioclipse. International Bioclipse Association, archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am 1. September 2015; abgerufen am 16. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> (Biowissenschaften), GenGIS<ref><templatestyles src="Webarchiv/styles.css" />R and GenGIS ( vom 15. September 2015 im Internet Archive)</ref> (Bioinformatik), Bio7<ref>Marcel Austenfeld, Wolfram Beyschlag: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). In: Journal of Statistical Software. Band 49, Nr. 4, 2012, S. 1–19 (online).</ref><ref><templatestyles src="Webarchiv/styles.css" />The R Perspective and Menus ( vom 27. September 2015 im Internet Archive)</ref> (Ökologische Modellierung und Bildanalyse), INVEP<ref>INVEP: Datenanalyse. In: INVEP. Abgerufen am 26. Mai 2016.</ref> (Insolvenzverwaltung) sowie Compass<ref>Cytel: Compass 2.0. The Comprehensive Adaptive Dose-finding Solution. In: Cytel. Cytel Inc., abgerufen am 27. Mai 2016 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> von Cytel (für klinische Studien) eine Einbindung von R.
Mit JASP und dessen Derivat Jamovi gibt es auch zwei Open-Source-Statistikprogramme, die R mit einer grafischen Bedienoberfläche versehen.
Einbindung in andere Programmiersprachen und Programmbibliotheken
Auf die Funktionalität von R können zahlreiche Skriptsprachen zugreifen. Dazu zählen Python (rpy2<ref>Laurent Gautier: Python-Paket rpy2. Python interface to the R language (embedded R). In: PyPI. Python Software Foundation, abgerufen am 5. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.6.4).</ref>), Julia (unter anderem RCall<ref>Randy Lai u. a.: Julia-Paket RCall. Embedded R within Julia. In: GitHub. Abgerufen am 12. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.2.1).</ref>), Perl (Statistics::R<ref>Florent Angly, Graciliano Monteiro Passos: Perl-Paket Statistics::R. Perl interface with the R statistical program. In: CPAN. The Perl Foundation, abgerufen am 5. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 0.33).</ref>), Ruby (rsruby<ref><templatestyles src="Webarchiv/styles.css" />Ruby-Paket rsruby ( vom 14. Juli 2006 im Internet Archive)</ref>) und F# (RProvider<ref>Blue Mountain Capital u. a.: F# R Type Provider. In: GitHub. Abgerufen am 5. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>).
Mit PL/R<ref>Joseph E. Conway: PL/R Project. R Procedural Language for PostgreSQL. In: JoeConway.com. Abgerufen am 12. März 2017.</ref> kann R innerhalb einer PostgreSQL-Datenbank zur serverseitigen Programmierung eingesetzt werden, was beispielsweise die Datenbank Rasdaman<ref>rasdaman: Welcome to rasdaman – the World’s Leading Array Database. In: rasdaman. Abgerufen am 8. Oktober 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> für Array- beziehungsweise Rasterdaten tut.
SWIG<ref>SWIG: SWIG Features. In: SWIG. Abgerufen am 16. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> macht in C und C++ geschriebene Module für R verfügbar. MicroAPL bindet mit APLX<ref>MicroAPL: APLX: New features in Version 5. In: MicroAPL. MicroAPL Ltd., abgerufen am 16. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> R in APL ein. Die Python-Werkzeuge zur Paketverwaltung (Conda<ref><templatestyles src="Webarchiv/styles.css" />Conda Supports R and Python ( vom 27. August 2015 im Internet Archive)</ref> von Continuum Analytics) und Automatisierung (Dexy<ref><templatestyles src="Webarchiv/styles.css" />R Filter ( vom 26. August 2015 im Internet Archive)</ref>, mit dem R Filter) nutzen R.
Einbindung als Skriptsprache in Serverumgebungen
rApache<ref>Jeffrey Horner: Web Application Development with R and Apache. In: rApache. Abgerufen am 12. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.2.5).</ref> ermöglicht die Entwicklung von Webanwendungen für R, die auf dem Apache HTTP Server basieren (Server Side Scripting). Zu weiteren Webangeboten zählen Rserve<ref>Simon Urbanek: About Rserve. In: RForge. The R Foundation, abgerufen am 12. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), aktuelle Version: 1.7-3).</ref> als binärer Server und Rwui<ref>Rwui: Create a user friendly web interface for an R script. In: MRC Biostatistics Unit. Cambridge Institute of Public Health, abgerufen am 12. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> für Java Webserver. R kann als Skriptsprache im LabKey-Server<ref>LaybKey Server: Configure Scripting Engines. In: LabKey Server. LabKey Software Foundation, abgerufen am 8. Oktober 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> (für Biomedizin) verwendet werden.
Unterstützung durch Stiftungen
R Foundation
Die gemeinnützige R Foundation for Statistical Computing besitzt und verwaltet das Urheberrecht von R und die Dokumentation. Ein Ziel ist die Förderung der Verbreitung von R als Open-Source-Sprache. Zudem dient ihre Rolle der Kommunikation mit der Presse und an R interessierten Organisationen. Die R Foundation finanziert sich durch Mitgliedsbeiträge und Spenden.<ref>The R Foundation for Statistical Computing: Statuten des Vereines The R Foundation for Statistical Computing. (PDF) In: CRAN. 10. September 2002, abgerufen am 17. Oktober 2015.</ref>
Die Zeitschrift The R Journal wird zweimal jährlich im Juni und Dezember von der R Foundation frei zugänglich als PDF-Datei herausgegeben. Sie informiert über Neuigkeiten in der R-Welt, Veränderungen in neuen R-Versionen, neue Pakete sowie Anwendertipps und Tutorials. Vor der ersten Ausgabe im Juni 2009 gab es die R News.<ref>R Core Team: The R Journal. About The R Journal. In: R Project. The R Foundation, abgerufen am 8. Januar 2016 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
Jährlich findet die Konferenz useR! statt, die sich an R-Nutzer richtet. Die erste dieser Veranstaltungen war useR! 2004 im Mai 2004 in Wien. Nachdem 2005 ausgelassen wurde, fand die Konferenz jährlich an verschiedenen Orten statt:<ref>R Core Team: useR! – International R User Conference. In: R Project. The R Foundation, archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am 29. Juni 2015; abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref><ref>Gergely Daróczi: R activity around the world. In: rapporter. Abgerufen am 7. August 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
useR!-Konferenzen
Neben der Organisation dieser und weiterer Konferenzen stellt die R Foundation bei entsprechenden Anlässen R vor und fördert Forschungsprojekte mit Bezug zu R.
Mailinglisten wurden eingerichtet und sind für Anwender mit Fragen zu R geöffnet. Antworten auf Fragen erfolgen häufig zügig, manchmal von Mitgliedern des R Core Teams.<ref>R Core Team: Mailing Lists. In: R Project. The R Foundation, abgerufen am 29. Juli 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
R Consortium
Mehrere größere Unternehmen, die R nutzen oder ihr Geschäftsmodell darauf stützen, schlossen sich 2015 zum R Consortium als Teil der Linux Foundation zusammen. Ziel ist insbesondere die Verbesserung der geschäftlichen Infrastruktur, um R im Unternehmensumfeld komfortabler einsetzen zu können.<ref>Alexander Neumann: Programmiersprache R: Konsortium mit breiter Industrieunterstützung gegründet. In: heise Developer. 1. Juli 2015, abgerufen am 21. Juli 2015.</ref> Zu den Gründungsmitgliedern des R Consortium zählen neben der R Foundation die Unternehmen Microsoft, RStudio, Tibco, alteryx, Google, Hewlett-Packard, Ketchum Trading, Mango Solutions und Oracle.<ref>Members. In: R Consortium. Abgerufen am 12. März 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> Die Gordon and Betty Moore Foundation sowie weitere Unternehmen wie IBM<ref>Alexander Neumann: IBM tritt dem R Consortium bei. In: heise Developer. 7. Juni 2016, abgerufen am 11. Juli 2016.</ref> und ESRI traten später bei. Um R besser in Unternehmensprozesse einbinden zu können, sollen gezielt Projekte gefördert werden. Das erste geförderte Projekt ist R-Hub, womit der Prozess der Erstellung und des Testens von R-Paketen vereinfacht werden soll.<ref>Machlis Musings: New $85K package development service backed by R Consortium. In: Computerworld. 2. November 2015, abgerufen am 19. November 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
Rezeption
R ist das umfassendste Werkzeug für statistische Analysen sowohl bezüglich der bereits implementierten Methoden als auch bezogen auf das Potential, das die Sprache für weitere statistische Fragestellungen bietet. R wurde von Statistikern für statistische Fragestellungen entworfen und geht somit direkt auf die Bedürfnisse ein, die für solche Zwecke benötigt werden (wenige Zeilen Code sind notwendig für komplexe statistische Probleme). Der Code der statistischen Methoden ist offen einsehbar und wurde schon von vielen studierten Statistikern mit Erfahrung in der Anwendung gesichtet und verbessert; zudem ist R von der Food and Drug Administration für medizinische Zwecke validiert. R steht unter einer freien Lizenz und ist Open Source und kann somit leicht auf individuelle Vorlieben angepasst werden und durch eigene Methoden erweitert werden. Außerdem kostet R keine Lizenzgebühr und kann auf verschiedenen Betriebssystemen genutzt werden. Die Grafiken können sehr flexibel an benutzerdefinierte Bedürfnisse angepasst werden (zum Beispiel unter Verwendung mathematischer Symbole). Auch die Datenstrukturen erlauben Flexibilität. Der Funktionsumfang von R wird durch zahlreiche Pakete stetig erweitert; aufgrund des unkomplizierten Vorgehens werden viele neue statistische Methoden als Erstes in R implementiert. Zahlreiche Funktionen und Pakete verknüpfen R mit anderer Software und ermöglichen somit das Importieren und Exportieren vieler Dateiformate. Auch andere Programmiersprachen und Datenbanken können eingebunden werden. Für R gibt es mittlerweile umfassende Literatur und Dokumentationen. R hat aktive Anwendergruppen um sich gegenseitig bei Problemen zu helfen sowie große Präsenz bei Portalen wie Stack Overflow und GitHub. Beschäftigte mit guten R-Kenntnissen, die an der Dice Tech Salary Survey (2013) teilnahmen, hatten ein höheres Durchschnittseinkommen als Beschäftigte mit anderen IT-Fertigkeiten.<ref>Dice: Dice Tech Salary Survey. (PDF) Salaries and Confidence Rise for U.S. Tech Professionals. In: Dice. DHI Group Inc., 29. Januar 2014, S. 9, abgerufen am 30. Juni 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value), Teilnehmer: insgesamt 17236 – vorwiegend US-amerikanische – Beschäftigte aus der Technologiebranche).</ref>
Eine vollständige grafische Benutzeroberfläche, wie sie in anderen Statistikprogrammen existiert, ist in R nicht vorhanden. Die Sprache erfordert somit einige Programmierfertigkeiten, um sie nutzen zu können, was erste Ergebnisse langsamer entstehen lässt. Hinzu kommt, dass R für eine sinnvolle Nutzung ein größeres Maß an statistischem Verständnis erfordert. Die Dokumentation der R-Befehle ist teilweise kurz und/oder uneinheitlich. Auch folgen die Bezeichnungen von Funktionen und Argumenten in der Sprache selbst (besonders in Paketen) nur wenigen Konventionen.<ref>Rasmus Bååth: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). In: The R Journal. Band 4, Nr. 2, 2012, S. 74–75 (r-project.org [PDF; 133 kB]).</ref> Eine ausgiebige inhaltliche Qualitätssicherung von neuen Paketen findet nicht statt. Bei Fehlfunktionen kann niemand zur Rechenschaft gezogen werden oder ist für eine schnelle Verbesserung verantwortlich. Da R auf die Bedürfnisse von Statistikern zielt und viele Methoden von ihnen (und nicht von Programmierern) implementiert werden, spielt Performance-Optimierung bei R nur eine nachgeordnete Rolle, weshalb andere Programmiersprachen oft schneller sind und manchmal zur Optimierung herangezogen werden. R fußt auf Programmiersprachen und Konzepten, die mehrere Jahrzehnte zurückliegen.<ref>Graham Williams: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). Springer, New York 2011, ISBN 978-1-4419-9889-7, S. 15–17.</ref><ref>Robert A. Muenchen: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). Springer, New York 2011, ISBN 978-1-4614-0684-6, S. 2–5.</ref> Die Entwickler von Julia haben sich zum Ziel gesetzt, die Sprache ähnlich gut und einfach zur Datenanalyse einsetzen zu können wie R und möchten die Sprache zudem mit hoher Geschwindigkeit ausstatten.<ref>Julia schlägt Python, Matlab, Octave und R. In: dotnetpro. 3. April 2012, abgerufen am 12. März 2017.</ref>
Beispiel
Als einfaches Beispiel wird der Korrelationskoeffizient zweier Datenreihen berechnet:
<syntaxhighlight lang="r">
- Groesse wird als numerischer Vektor
- durch den Zuweisungsoperator "<-" definiert:
Groesse <- c(176, 166, 172, 184, 179, 170, 176)
- Gewicht wird als numerischer Vektor definiert:
Gewicht <- c(65, 55, 67, 82, 75, 65, 75)
- Berechnung des Korrelationskoeffizienten nach Pearson mit der Funktion "cor":
cor(Gewicht, Groesse, method = "pearson") </syntaxhighlight>
Das Ergebnis lautet 0.9295038.
Als weitergehende Analyse kann eine lineare Regression durchgeführt werden. Dies kann in R durch die Funktion lm ausgeführt werden, wobei die abhängige Variable von den unabhängigen Variablen durch die Tilde getrennt wird. Die Funktion summary gibt die Koeffizienten der Regression und weitere Statistiken hierzu aus:
<syntaxhighlight lang="r">
- Lineare Regression mit Gewicht als Zielvariable
- Ergebnis wird als reg gespeichert:
reg <- lm(Gewicht~Groesse)
- Ausgabe der Ergebnisse der obigen linearen Regression:
summary(reg) </syntaxhighlight>
Diagramme lassen sich einfach erzeugen:
<syntaxhighlight lang="r">
- Streudiagramm der Daten:
plot(Gewicht~Groesse)
- Regressionsgerade hinzufügen:
abline(reg) </syntaxhighlight>
Siehe auch
Literatur
- Ross Ihaka, Robert Gentleman: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). In: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). Band 5, Nr. 3. American Statistical Association, Institute of Mathematical Statistics, Interface Foundation of North America, Alexandria 1996, S. 299–314. Vorstellung der Programmiersprache R als wissenschaftliches Paper (online: R: A Language for Data Analysis and Graphics. (PDF; 1,7 MB) Abgerufen am 29. Juli 2015.)
- Uwe Ligges: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). 3. Auflage. Springer, Heidelberg 2008, ISBN 978-3-540-79997-9, doi:10.1007/978-3-540-79998-6 (Material – Erläuterung des wichtigsten Teils der Funktionsweise von R).
- Lothar Sachs, Jürgen Hedderich: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). 16. Auflage. Springer, Berlin 2018, ISBN 978-3-662-56656-5, doi:10.1007/978-3-662-56657-2 (Umfassendes Lehrbuch über statistische Verfahren mit R).
- Hadley Wickham: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). O’Reilly, Sebastopol 2015, ISBN 978-1-4919-1059-7 (online – Paketerstellung mit R).
- Hadley Wickham: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). Chapman & Hall/CRC, Boca Raton 2014, ISBN 978-1-4665-8696-3 (online – Detaillierte Erläuterung der Funktionsweise von R).
- Michael J. Crawley: {{Modul:Vorlage:lang}} Modul:Multilingual:153: attempt to index field 'data' (a nil value). 2. Auflage. John Wiley & Sons, Chichester 2012, ISBN 978-0-470-97392-9 (Material – Umfassendes Werk, welches die Durchführung zahlreicher statistischer Verfahren mit R vorstellt).
Weblinks
- R-project.org Offizielle Website zu R mit Informationen, Download-Möglichkeit, Dokumentationen und Ähnlichem
- Rweb Angebot, um R online zu nutzen
- Rdocumentation.org Erweiterte Suche und Übersicht auf R-Funktionen und Pakete
- R-bloggers Sammlung von über 10.000 Blogbeiträgen zu R-Themen, beigesteuert von mehr als 500 Bloggern
- 25 Jahre: Wie R zur wichtigsten Programmiersprache für Statistiker wurde. heise news, 3. August 2018
Einzelnachweise
<references responsive />