Zusammenfassung
R bietet nicht nur Mittel zur numerischen und grafischen Datenanalyse, sondern ist gleichzeitig eine Programmiersprache, die dieselbe Syntax wie die bisher behandelten Auswertungen verwendet. Das sehr umfangreiche Thema der Programmierung mit R soll in den folgenden Abschnitten nur soweit angedeutet werden, dass nützliche Sprachkonstrukte wie z. B. Kontrollstrukturen verwendet sowie einfache Funktionen selbst erstellt und analysiert werden können.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Für Hilfe zu diesem Thema vgl. ?Control.
- 2.
Mit der Einstellung erzeugt ein Vektor von Wahrheitswerten als Bedingung in if() einen Fehler. In einer zukünftigen Version von R kann dies zur Voreinstellung werden.
- 3.
Mit können damit schnell viele Befehlszeilen von der Verarbeitung ausgeschlossen werden, ohne diese einzeln mit # auskommentieren zu müssen. Die ausgeschlossenen Zeilen müssen dabei jedoch nach wie vor syntaktisch korrekt, können also keine Kommentare im engeren Sinne sein.
- 4.
Allgemein gilt, dass in einer Zeile stehende Befehle einen Block bilden und zusammen ausgeführt werden. Geschweifte Klammern sorgen dafür, dass die zwischen ihnen stehenden Befehle auch dann als einzelner Block gewertet werden, wenn sie sich über mehrere Zeile erstrecken. Die Auswertung erfolgt erst, wenn die Klammer geschlossen wird, auch wenn Abschnitte davor bereits für sich genommen syntaktisch vollständig sind.
- 5.
Anders als in kompilierten Programmiersprachen wie etwa C oder Fortran sind Schleifen in R als interpretierter Sprache oft ineffizient. Als Grundregel sollten sie deswegen bei der Auswertung größerer Datenmengen nach Möglichkeit vermieden und durch vektorisierte Befehle ersetzt werden, die mehrere, als Vektor zusammengefasste Argumente gleichzeitig bearbeiten (Ligges und Fox 2008).
- 6.
Die aufgerufene Funktion kann nur Kopien der ursprünglichen Objekte, nicht aber die Objekte selbst ändern, da Argumente als Wertparameter (call by value) übergeben werden.
- 7.
Dies sind lokale Objekte, sie existieren in einer beim Funktionsaufruf eigens erstellten Umgebung (Abschn. 1.4.1). Für das in diesem Kontext relevante, aber komplexe Thema der Regeln für die Gültigkeit von Objekten (scoping) vgl. Chambers (2016).
- 8.
Bis zur Auswertung ist das Argument ein promise. Für gewöhnliche Zuweisungen an Objekte gilt dagegen das Eager-Evaluation-Prinzip, nach dem der Inhalt von neuen Objekten schon bei der Zuweisung ausgewertet wird. Um auch für diese Objekte das Lazy-Evaluation-Prinzip zu nutzen, muss delayedAssign() verwendet werden.
- 9.
Für einfache, nur zum eigenen Gebrauch bestimmte Funktionen mag dies überflüssig erscheinen, da man dann selbst darauf achten kann, sie korrekt zu verwenden. Allerdings ist dies gefährlich, da sich Funktionen durch andere als die vorgesehenen Eingangsinformationen stillschweigend anders als beabsichtigt verhalten können und so u. U. schwer entdeckbare Fehler verursachen (Abschn. 17.3.6).
- 10.
Für S4-Methoden analog sowie .
- 11.
Entwicklungsumgebungen wie RStudio (Abschn. 1.1.4) bieten grafische Oberflächen, die das debugging sehr erleichtern.
- 12.
Operatoren sind in rückwärts gerichtete Hochkommata zu setzen, etwa ‘+‘ für die Addition.
- 13.
Für S4-Methoden analog.
- 14.
Für S4-Methoden analog .
- 15.
Unter https://github.com/wch/r-source/ kann eine Kopie des Quelltext online gelesen und durchsucht werden.
- 16.
https://r-pkg.org/ verlinkt für jedes Paket auf CRAN eine URL, unter der der Quelltext eines Pakets online gelesen und durchsucht werden kann.
- 17.
Eine Erweiterung liefert das Paket bench (Hester 2020).
- 18.
Allerdings sorgen die Besonderheiten der fork Technik für mögliche Probleme, insbesondere sollte R dann nicht innerhalb von RStudio oder einer anderen grafischen Entwicklungsumgebung laufen. Details erläutert ?mclapply.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Copyright information
© 2020 Springer-Verlag GmbH Deutschland, ein Teil von Springer Nature
About this chapter
Cite this chapter
Wollschläger, D. (2020). R als Programmiersprache. In: Grundlagen der Datenanalyse mit R. Statistik und ihre Anwendungen. Springer Spektrum, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-61736-6_17
Download citation
DOI: https://doi.org/10.1007/978-3-662-61736-6_17
Published:
Publisher Name: Springer Spektrum, Berlin, Heidelberg
Print ISBN: 978-3-662-61735-9
Online ISBN: 978-3-662-61736-6
eBook Packages: Life Science and Basic Disciplines (German Language)