R (Programmiersprache)

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
R
Rlogo.png
Maintainer R Development Core Team
Entwickler The R Foundation for Statistical Computing
Aktuelle Version 3.1.1
(10. Juli 2014)
Betriebssystem Unixoide, Mac OS, Microsoft Windows
Programmier­sprache C, Fortran
Kategorie Statistik
Lizenz GNU General Public License
Deutschsprachig ja
www.r-project.org

R ist eine freie Programmiersprache für statistisches Rechnen und statistische Grafiken. Sie ist in Anlehnung an die Programmiersprache S entstanden und weitgehend mit dieser kompatibel. Außerdem orientierten sich die Entwickler an der Programmiersprache Scheme.

R ist Teil des GNU-Projekts und auf vielen Plattformen verfügbar. R gilt zunehmend als die Standardsprache für statistische Problemstellungen sowohl im kommerziellen als auch im wissenschaftlichen Bereich (obwohl vor allem im kommerziellen Bereich SAS ebenfalls sehr populär ist).[1][2] Im aktuellen TIOBE-Index (Stand: September 2014) belegt R Platz 21.[3] Beschäftigte mit guten R-Kenntnissen, die an der Dice Tech Salary Survey (2013) teilnahmen (insgesamt 17236 – vorwiegend US-amerikanische – Beschäftigte aus der Technologiebranche), hatten ein höheres Durchschnittseinkommen als Beschäftigte mit anderen IT-Fähigkeiten.[4]

Geschichte[Bearbeiten]

R wurde 1992 von Ross Ihaka und Robert Gentleman an der Universität Auckland entwickelt. Sie orientierten sich eng an der in den Bell Laboratories entwickelten Sprache S zur Verarbeitung statistischer Daten, so dass die Mehrzahl der für S geschriebenen Programme auch unter R lauffähig ist. Dabei fand insbesondere die S-Version 4 Berücksichtigung, allerdings wurden die Quelltexte von R neu geschrieben. Eine weitere Inspirationsquelle war die Programmiersprache Scheme. 1993 wurde die Software erstmals öffentlich vorgestellt, seit Juni 1995 steht R unter der GNU General Public License.[5]

Eigenschaften[Bearbeiten]

R ist eine case sensitive (also Groß- und Kleinschreibung beachtende) Interpretersprache, die Benutzereingaben in der Kommandozeilenkonsole nach Betätigen der Enter-Taste unmittelbar zur Ausführung bringt. Natürlich lassen sich auch Programme in Skripten zur Ausführung bringen. Die Eingabe von 2*4 sieht dann folgendermaßen aus:

> 2*4

[1] 8

Die Ausgabe [1] 8 bedeutet, dass es sich beim Ergebnis 8 um das erste Element eines Vektors handelt. Die einfachste Datenstruktur in R stellt entsprechend auch einen Vektor dar. Vektoren und Matrizen müssen grundsätzlich Elemente gleichen Typs sein, also beispielsweise numerisch, komplex oder character (Zeichenketten). Entsprechend werden Rechenoperationen auf alle Elemente dieser Datenstrukturen angewendet. Bei Zuweisung unterschiedlicher Datentypen zu einem Vektor werden die Daten entsprechend umgewandelt, um einheitliche Datentypen zu erhalten. So werden etwa aus Zahlen dann Zeichenketten.

Neben diesen homogenen Datenstrukturen werden oft sogenannte data frames für Datensätze bei statistischen Auswertungen verwendet. Data frames sind matrizenförmig, können aber Spalten unterschiedlicher Datentypen enthalten.

Darüber hinaus gibt es noch sogenannte Listen. In Listenstrukturen können Daten beliebiger R-Strukturen und Typen enthalten sein. Sehr viele statistische Auswertfunktionen erzeugen Listen.

Pakete[Bearbeiten]

Der Funktionsumfang von R kann durch eine Vielzahl von 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 Comprehensive R Archive Network (CRAN). Die Software Bioconductor baut auf R auf und bietet Erweiterungen aus dem Bereich der Bioinformatik, insbesondere der Analyse von Genexpressionsdaten. Aktuell (Stand: Januar 2013) gibt es über 5577 Pakete auf CRAN[6] und über 824 Pakete auf Bioconductor.[7]

Mit PL/R[8][9] kann die Programmiersprache auch als Erweiterung von PostgreSQL zur serverseitigen Programmierung eingesetzt werden.

Das Paket foreign[10] erlaubt es, Datensätze aus anderen Statistikprogrammen wie SPSS, Stata oder Minitab einzulesen und zu analysieren. RMySQL richtet eine Schnittstelle zu einer MySQL-Datenbank ein und XML-Dateien können mit dem Paket XML eingelesen werden. Außerdem ist es möglich, R Code mittels der Umgebungen knitr oder sweave in LaTeX einzubinden. Außerdem beinhalten verschiedene Pakete Schnittstellen zu anderen Programmiersprachen, wie C++ mittels RCPP und Datenbanksprachen wie SQL mit dem Paket sqldf.

Zwei bekannte Grafikerweiterungen für R sind die Pakete lattice und ggplot2, die durch größere Abstraktion schneller komplexe Grafiken erstellen lassen. lattice ist eine Implementierung der Idee der Trellis-Grafiken[11] zur Visualisierungen von multivariaten Daten.[12] ggplot2 ist eine Implementierung von Leland Wilkinsons Grammar of Graphics.[13][14]

Unter der Rubrik Task Views[15] enthält CRAN eine Liste von zurzeit (Stand März 2014) 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.

Benutzeroberfläche[Bearbeiten]

R läuft in einer Kommandozeilenumgebung. Darüber hinaus gibt es mehrere grafische Benutzeroberflächen (GUI), beispielsweise RStudio,[16] Statistiklabor, JGR (Jaguar),[17] RKWard, StatET (Eclipse)[18] und andere.

Zwei grafische Benutzeroberflächen, die als Pakete in R bereitgestellt werden, sind der R-Commander (Paketname: Rcmdr)[19] und relax.[20] Beide bieten, über ein Menüsystem aufrufbar, einige wichtige Prozeduren der explorativen und analytischen Statistik. Ebenso können über das Menü Standardgrafiken erzeugt werden. Der R-Commander erleichtert das Datenmanagement und hilft beim Schreiben von Auswertskripten. Er ist betriebssystemunabhängig geschrieben.[21] Relax ist speziell darauf konzipiert die Datenanalyse und Dokumentation der Ergebnisse in einem Dokument zu integrieren (siehe Sweave). Weiterhin wird als R Paket die Rattle GUI[22] vertrieben. Sie bietet den Einstieg in Data-Mining-Projekte.[23]

Die plattformunabhängige Java-basierte Benutzeroberfläche JGR („Java GUI for R“) ermöglicht eine unterstützte Befehlseingabe, die beispielsweise die Anzahl der Klammern prüft und über Autovervollständigung verfügt. Eine zusätzliche hilfreiche Erweiterung stellt das Paket Deducer[24] dar, das Möglichkeiten der Datenbearbeitung durch einen Data Viewer enthält.

Für zahlreiche Editoren wie Tinn,[25] Vim,[26] Emacs,[27] TextWrangler,[28] SubEthaEdit[28] oder Notepad++[29] gibt es R-Erweiterungen.

Beispiel[Bearbeiten]

Als einfaches Beispiel soll der Korrelationskoeffizient zweier Datenreihen berechnet werden:

# 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:
cor(Gewicht, Groesse, method = "pearson")

Als Ergebnis erhält man 0.9295038. Text nach dem Doppelkreuz „#“ wird vom R-Interpreter als Kommentar behandelt.

Grafikausgabe des Beispiels

Als weitergehende Analyse kann man eine lineare Regression durchführen. Dies kann in R durch den lm-Befehl ausgeführt werden, wobei die abhängige Variable von den unabhängigen Variablen durch eine Tilde „~“ getrennt wird. Der summary-Befehl gibt dann die Koeffizienten der Regression und weitere Statistiken hierzu aus:

# Lineare Regression mit Gewicht als Zielvariable
# Ergebnis wird als reg gespeichert:
reg <- lm(Gewicht~Groesse)
 
# Ausgabe der Ergebnisse der obigen linearen Regression:
summary(reg)

Diagramme lassen sich sehr einfach erzeugen:

# Punktdiagramm der Daten:
plot(Gewicht~Groesse)
# Regressionsgerade:
abline(reg)

useR!-Konferenzen[Bearbeiten]

"useR!" ist der Name der jährlichen Zusammenkünfte von R-Nutzern. Die erste dieser Veranstaltungen war useR! 2004, die im Mai 2004 in Wien stattfand.[30] Nachdem 2005 ausgelassen wurde, fand die Konferenz jährlich statt, meist im Wechsel zwischen Europa und Nordamerika an verschiedenen Orten.[31] Darauf folgende Konferenzen waren:

Siehe auch[Bearbeiten]

Literatur[Bearbeiten]

Englisch

  •  Ross Ihaka, Robert Gentleman: R: A Language for Data Analysis and Graphics. In: Journal of Computational and Graphical Statistics. 5, Nr. 3, American Statistical Association, Institute of Mathematical Statistics, Interface Foundation of North America, Alexandria, Virginia 1996, ISSN 1061-8600, S. 299–314 (Online-Version (PDF, 1,7 MB), abgerufen am 29. September 2010).
  • Springer Use R! Series
  • Kommentierte Bücherliste
  •  William N. Venables, Brian D. Ripley: Modern Applied Statistics with S. 4. Auflage. Springer, New York 2002, ISBN 978-0-387-95457-8.
  •  John Verzani: Using R for introductory statistics. Chapman & Hall/CRC, Boca Raton, FL 2005, ISBN 978-1-58488-450-7.
  •  John Maindonald: Using R for Data Analysis and Graphics: Introduction, Code and Commentary. 2008 (Online-Version (PDF, 2,5 MB), abgerufen am 22. Juni 2012).
  •  Peter Dalgaard: Introductory Statistics with R. 2. Auflage. Springer New York, 2008, ISBN 978-0-387-79053-4.
  •  Joseph Adler: R in a Nutshell. O’Reilly Media, 2009, ISBN 978-0-596-80170-0.
  •  Paul Teetor: R Cookbook. O’Reilly Media, 2011, ISBN 978-0-596-80915-7.

Deutsch

  •  Thomas Rahlf: Datendesign mit R – 100 Visualisierungsbeispiele. Open Source Press, München 2014, ISBN 978-3-95539-094-5.
  •  Uwe Ligges: Programmieren mit R. 3. Auflage. Springer, Heidelberg 2009, ISBN 978-3-540-79997-9.
  •  Katharina Manderscheid: Sozialwissenschaftliche Datenanalyse mit R. VS Verlag für Sozialwissenschaften, Wiesbaden 2012, ISBN 978-3-531-17642-0.
  •  Rainer W. Alexandrowicz: R in 10 Schritten. UTB Facultas Verlags- und Buchhandels AG, 2013, ISBN 978-3-8252-8484-8.
  •  Joseph Adler: R in a Nutshell. O'Reilly Media, 2010, ISBN 978-3-89721-649-5.Deutsche Übersetzung von Jörg Beyer

Weblinks[Bearbeiten]

 Commons: GNU R – Sammlung von Bildern, Videos und Audiodateien
 Wikibooks: GNU R – Lern- und Lehrmaterialien
  • www.r-project.org Offizielle Website zu R mit Informationen, Download-Möglichkeit, Dokumentationen und ähnlichem

Einzelnachweise[Bearbeiten]

  1. Ashlee Vance: Data Analysts Captivated by R's Power. In: The New York Times. 7. Januar 2009, abgerufen am 5. Januar 2012.
  2. Robert A. Muenchen: The Popularity of Data Analysis Software. In: r4stats.com. 4. Januar 2012, abgerufen am 5. Januar 2012.
  3. TIOBE-RANKING. Abgerufen am 9. September 2014.
  4. Dice Tech Salaray Survey (pdf). Abgerufen am 4. März 2014.
  5.  Ross Ihaka: R: Past and Future History. A Draft of a Paper for Interface ’98. In: Sanford Weisberg (Hrsg.): Proceedings of the 30th Symposium on the Interface. The Interface Foundation of North America, 1998, S. 392–396 (http://www.stat.auckland.ac.nz/~ihaka/downloads/Interface98.pdf, abgerufen am 29. September 2010).
  6. CRAN – Contributed Packages. Abgerufen am 26. Mai 2014.
  7. Bioconductor – Open Source Software for Bioinformatics. Homepage. Abgerufen am 26. Mai 2014.
  8. PL/R. Abgerufen am 22. Oktober 2011.
  9. Philipp L. Rautenberg, Andrey Sobolev, Andreas V.M. Herz, and Thomas Wachtler: A Database System for Electrophysiological Data. Springer-Verlag;Large-Scale Data and Knowledge Centered Systems IV,, 2011, abgerufen am 26. Oktober 2011 (englisch, e- ISBN 978-3-642-23740-9).
  10. cran.r-project.org
  11.  Richard A. Becker, William S. Cleveland, Ming-Jen Shyu: The Visual Design and Control of Trellis Display. In: Journal of Computational and Graphical Statistics. 5, Nr. 2, 1996-06-01, ISSN 1061-8600, S. 123–155, doi:10.2307/1390777.
  12.  Deepayan Sarkar: Lattice : multivariate data visualization with R. Springer, New York, London 2008, ISBN 978-0-387-75968-5.
  13.  Leland I Wilkinson: The grammar of graphics. Springer, New York 1999, ISBN 978-0-387-98774-3.
  14.  Hadley Wickham: ggplot2 : elegant graphics for data analysis. Springer New York, New York, NY 2009, ISBN 978-0-387-98140-6.
  15. cran.r-project.org
  16. RStudio
  17. JGR (Java)
  18. StatET (Eclipse)
  19. R-Commander (Paketname: Rcmdr)
  20. relax
  21.  John Fox: The R Commander: A Basic-Statistics Graphical User Interface to R. In: Journal of Statistical Software. 14, Nr. 9, 19. August 2005, ISSN 1548-7660, S. 1–42.
  22. Rattle GUI online auf: code.google.com
  23. rattle.togaware.com
  24. deducer.org
  25. Tinn-R. Homepage. Abgerufen am 23. Januar 2012.
  26. Vim R Plugin. Homepage. Abgerufen am 26. Mai 2014.
  27. ESS – Emacs Speaks Statistics. Homepage. Abgerufen am 23. Januar 2012.
  28. a b How to speed up R on Mac OS X with an external editor. Homepage. Abgerufen am 12. Februar 2012.
  29. NppToR – R in Notepad++. Homepage. Abgerufen am 23. Januar 2012.
  30. useR! 2004 - The R User Conference. 27. Mai 2004, abgerufen am 15. März 2014.
  31. R Project: R-related Conferences. 9. August 2013, abgerufen am 15. März 2014.