R für Dummies
R für Dummies
Bibliografische Information der Deutschen Nationalbibliothek
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de
abrufbar.
3. Auflage 2021
© 2021 Wiley-VCH GmbH, Weinheim
Original English language edition R for Dummies © 2015 by Wiley Publishing, Inc.
All rights reserved including the right of reproduction in whole or in part in any form. This translation published by arrangement with John Wiley and Sons, Inc.
Copyright der englischsprachigen Originalausgabe R for Dummies © 2015 by Wiley Publishing, Inc
Alle Rechte vorbehalten inklusive des Rechtes auf Reproduktion im Ganzen oder in Teilen und in jeglicher Form. Diese Übersetzung wird mit Genehmigung von John Wiley and Sons, Inc. publiziert.
Wiley, the Wiley logo, Für Dummies, the Dummies Man logo, and related trademarks and trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries. Used by permission.
Wiley, die Bezeichnung »Für Dummies«, das Dummies-Mann-Logo und darauf bezogene Gestaltungen sind Marken oder eingetragene Marken von John Wiley & Sons, Inc., USA, Deutschland und in anderen Ländern.
Das vorliegende Werk wurde sorgfältig erarbeitet. Dennoch übernehmen Autoren und Verlag für die Richtigkeit von Angaben, Hinweisen und Ratschlägen sowie eventuelle Druckfehler keine Haftung.
Coverfoto: fotomek – stock.adobe.com
Korrektur: Claudia Lötschert
Print ISBN: 9783527719068
ePub ISBN: 978-3-527-83609-3
Andrie de Vries verwendete R im Jahr 2009 erstmalig, um Umfragedaten zu analysieren, und ist seitdem regelmäßig überrascht über die Fähigkeit einer Open-Source-Gemeinde, hervorragende und innovative Software herzustellen. Ebenfalls 2009 gründete er PentaLibra Limited, ein kleines, aber feines Marktforschungsunternehmen, das sich auf Umfragen und statistische Analysen spezialisiert hat. Nachdem er sich immer stärker innerhalb der R-Community engagierte, wurde er Mitarbeiter bei Revolution Analytics, um R bei Großkunden zu etablieren und ihnen und anderen bei den Herausforderungen von Data Science und Big Data zu helfen. Zur Erhaltung seines seelischen Gleichgewichts lernt und praktiziert Andrie de Vries Yoga.
Joris Meys, MSc, ist Berater in Sachen Statistik sowie R-Programmierer und Dozent an der Universität Gent (Belgien). Nachdem er seinen Master in Biologie erwarb, arbeitete er zunächst sechs Jahre in Umweltforschung und -management, bis er fortgeschrittene Studien für einen Masterabschluss in statistischer Datenanalyse begann. Joris Meys schreibt Pakete sowohl für spezielle Projekte als auch generelle Methoden, die in seiner Abteilung entwickelt wurden. Darüber hinaus unterhält er mehrere Pakete bei R-Forge. Er ist Koautor mehrerer wissenschaftlicher Arbeiten, bei denen er den statistischen Part übernahm. Um Wissenschaft und Kultur in Einklang zu bringen, spielt er im überwiegenden Teil seiner Freizeit Saxofon in einigen lokalen Bands.
Dieses Buch ist für meine Frau Annemarie, für ihre Ermutigung, Unterstützung und Geduld. Es ist auch für meine Nichte Tanya, die wirklich gut in Mathe ist und nicht aufhörte, mich an den Abgabetermin des Manuskripts zu erinnern. Schlussendlich ist es für meine Eltern, für ihren lebenslangen Zuspruch.
– Andrie de Vries
Ich widme dieses Buch den wichtigsten Frauen in meinem Leben. Für meine Mutter, denn sie machte den Menschen aus mir, der ich jetzt bin. Für Eva, denn sie liebt den Mann, der ich bin. Für Amelie, weil ihr kleines Lächeln jedes Mal mein Herz zum Schmelzen bringt. Und für meine Großmutter – sie ist einfach wirklich super!
– Joris Meys
Dieses Buch wurde nur möglich durch die enorme Unterstützung, die wir vom Wiley-Verlag erfahren haben. Insbesondere danken wir Elizabeth Kuball (erste Auflage) und Katie Mohr (zweite Auflage).
Danke an unseren technischen Lektor, Gavin Simpson, für sein aufmerksames Lesen und viele hilfreiche Kommentare.
Wir danken Patrick Burns, dem Autor von R Inferno, für seine enthusiastische Unterstützung und die sehr detaillierte Rezension der ersten Auflage.
Danke an das R Core Team für die Entwicklung von R, für die Pflege des CRAN und die Hingabe an die R-Gemeinde in Form von Mailinglisten, Dokumentationen und Seminaren. Danke auch an die R-Gemeinde für Tausende hilfreicher Pakete, Blogs und beantwortete Fragen.
In diesem Buch verwenden wir einige Pakete von Hadley Wickham, dessen Paket ggplot2
und andere, wie zum Beispiel plyr
, eine nicht versiegende Quelle der Inspiration für uns sind.
Beim Schreiben dieses Buchs profitierten wir von sehr hilfreicher Unterstützung vieler Teilnehmer der R-Gruppe von Stack Overflow. Vielen Dank an James (JD) Long, David Winsemius, Ben Bolker, Joshua Ulrich, Barry Rowlingson, Roman Luštrik, Joran Elias, Dirk Eddelbuettel, Richie Cotton, Colin Gillespie, Simon Urbanek, Gabor Grotendieck und die vielen weiteren, die Stack Overflow zu einer großen Informationsquelle für die ganze R-Gemeinde machen.
Von Andrie: Es ist keine Übertreibung, zu behaupten, dass dieses Buch zumindest teilweise dafür verantwortlich ist, dass sich mein Leben verändert hat. R zu erlernen, einen Beitrag zu seiner Open-Source-Community zu leisten und dieses Buch zu schreiben, hat alles dazu beigetragen, dass ich heute bei Revolution Analytics angestellt bin. Ich möchte all meinen Kollegen danken, insbesondere Derek McCrae Norton, David Smith und Joseph Rickert.
Joris Meys: Danke an die Professoren und Kollegen an der Fakultät für Mathematische Modellierung, Statistik und Bioinformatik der Universität Gent für erhellende Diskussionen und die Unterstützung, die ich während des Schreibens dieses Buchs erhalten habe.
Karl-Kuno Kunze (Übersetzer der ersten Auflage), geboren 1970, ist Professor für Wirtschaftsmathematik und -statistik an der Ostfalia Hochschule Braunschweig/Wolfenbüttel und arbeitet mit R seit 2004. Er promovierte zunächst in theoretischer Physik, dann in Wirtschaftswissenschaft. Robert Leidenfrost (Übersetzer der zweiten Auflagen), geboren 1986, ist Molekularmediziner und Bioinformatiker. Er arbeitet, forscht und lehrt an der Hochschule Mittweida, University of Applied Sciences. Die Sprache R begleitet ihn schon seit 2011. Die bei seinen wissenschaftlichen Arbeiten gewonnenen Daten prozessiert und visualisiert er am liebsten mit R. Rainer G. Haselier (Bearbeiter der 3. Auflage), geboren 1958, ist Diplom-Sozialpädagoge sowie Groß- und Außenhandelskaufmann und hat in den vergangenen 30 Jahren mehrere Hundert Bücher zu den Themenbereichen Programmierung, Betriebssysteme sowie Microsoft Office sowohl verfasst als auch übersetzt.
Willkommen bei R für Dummies, dem Buch, das die Lernkurve für die Statistik- und Programmiersprache R zu einem aufregenden Erlebnis ähnlich der Nordkurve macht.
Wir garantieren keineswegs, dass Sie nach der Lektüre dieses Buchs ein R-Guru sind, die folgenden Dinge werden Sie allerdings auf jeden Fall beherrschen:
knowledge <- apply(theory, 1, sum)
R für Dummies ist eine Einführung in die statistische Programmiersprache R. Wir beginnen zunächst mit der Benutzeroberfläche und arbeiten uns dann von ziemlich einfachen Konzepten der Sprache vor bis zu schon recht anspruchsvollen Themen der Datenverarbeitung und -analyse.
Jeder Schritt wird von einfach durchzuführenden Beispielen begleitet. Dieses Buch enthält zahlreiche Codeausschnitte, einige Baukastenfunktionen, die Sie später weiterverwenden können, sowie komplette Analyseskripte. All das hat im Wesentlichen einen Zweck: Sie sollen es selbst ausprobieren.
Wir versuchen erst gar nicht, eine technische Beschreibung zu unternehmen, wie R selbst programmiert wurde. Davon abgesehen sollen sich unsere Ausführungen, wie etwas funktioniert, in etwa die Waage halten mit den Gründen, warum das so funktioniert. R ist keine durchschnittliche Skriptsprache und hat einige Eigenschaften, die auf den ersten Blick überraschen mögen. Anstatt Ihnen einfach nur zu erzählen, wie Sie mit R sprechen sollen, glauben wir schon, dass es wichtig ist, Ihnen zu verraten, wie R Ihre Eingaben liest und interpretiert. Nachdem Sie dieses Buch gelesen haben, sollten Sie in der Lage sein, Daten in der von Ihnen gewünschten Form zu verarbeiten und Funktionen zu verwenden, die wir in diesem Buch nicht vorgestellt haben (die wir vorgestellt haben, möglichst auch).
Dieses Buch ist als Referenz gedacht. Sie müssen es nicht von Anfang bis Ende lesen. Stattdessen können Sie einfach das Inhaltsverzeichnis und das Stichwortverzeichnis nutzen, um die Informationen, die Sie brauchen, zu finden. In jedem Kapitel verweisen wir auf andere Kapitel, in denen Sie weitere Informationen finden.
Seit der Publikation der ersten Auflage hat sich R kontinuierlich weiterentwickelt und verbessert. Um die Korrektheit des Buchs zu gewährleisten, haben wir den Code entsprechend der letzten Version von R (Version 3.4.1) angepasst. Basierend auf dem Feedback von Lesern, Studenten und Kollegen konnten wir einige Abschnitte überarbeiten und so Fragen klären und Ungenauigkeiten beheben. Beispielsweise haben wir den Code dahin gehend geändert, dass wir nun hochgestellte Gänsefüße statt Hochkommata innerhalb von Text-Strings verwenden. Auch bezeichnen wir jetzt die Basiseinheiten von Listen als Komponenten statt Elementen.
Die dritte Auflage des Buchs basiert auf der R-Version 4.0.4, die im Februar 2021 veröffentlicht wurde. Falls sich geänderte und neue Features auf die Themen und Beispiele auswirken, die im Buch vorgestellt werden, dann wurden Text und Code entsprechend angepasst.
Das aktuelle rfordummies
-Paket enthält die Codebeispiele aus dem Buch. Sie können alles Weitere über das Paket in Anhang B erfahren.
Codeausschnitte erscheinen wie in dem folgenden Beispiel, indem wir eine Million Würfe zweier sechsseitiger Würfel simulieren:
> set.seed(42)
> throws <- 1e6
> dice <- sapply(1:2,
+ function(x) sample(1:6, throws, replace = TRUE)
+ )
> table(rowSums(dice))
2 3 4 5 6 7 8 28007 55443 83382 110359 138801 167130 138808 9 10 11 12 110920 83389 55816 27945
Jede Zeile des R-Codes in diesem Beispiel beginnt mit einem der folgenden Symbole:
>
. Es ist nicht Teil des Codes. Geben Sie es nicht ein, wenn Sie den Code selbst ausprobieren.+
. Es zeigt an, dass diese Zeile eigentlich noch zur vorhergehenden gehört. Genau genommen müssen Sie gar keine Zeilenumbrüche in Ihren Code einbauen. Wir tun dies jedoch häufig, um die Lesbarkeit des Codes zu verbessern. Darüber hinaus ist es hilfreich, damit er auf die Buchseiten passt.Die Zeilen, die weder mit dem einen noch mit dem anderen Symbol beginnen, sind Ausgaben von R. In unserem Beispiel erhalten Sie die Gesamtzahl an Würfen, in denen die Summe der Augen 2, 3, …, 12 betrug. Zum Beispiel war die Summe der Augen in 28.007 von einer Million Würfen gleich zwei.
>
ein.+
ein.Wenn R eine Eingabe von Ihnen erwartet, zeigt es das mit dem Symbol >
ganz links in der Zeile, etwa so:
> print("Hallo Welt!")
Wenn Sie diese Anweisung in die Konsole eingeben und drücken, antwortet R mit:
[1] "Hallo Welt"
Aus Bequemlichkeit werden sowohl die Eingabe als auch die Ausgabe in einem Block angezeigt:
> print("Hallo Welt!")
[1] "Hallo Welt!"
Schließlich sei noch auf die Schriftart von R-Code im Buch hingewiesen. Die meisten Wörter in R sind von englischen Wörtern abgeleitet. Zwar ist dies bei einem deutschen Text nicht so verwirrend wie bei einem englischen. Dennoch setzen wir R-Funktionen, Argumente und Schlüsselwörter in Monofont
. Funktionen werden immer zusammen mit nachgestellten geschlossenen Klammern dargestellt – zum Beispiel plot()
. Funktionsargumente geben wir grundsätzlich nicht an und weichen davon nur in wichtigen Fällen ab.
Manchmal geht es um Menübefehle, zum Beispiel DATEI | SICHERN (FILE | SAVE). Dies bedeutet lediglich, dass Sie gebeten werden, das Menü DATEI (FILE) zu öffnen und anschließend die Option SICHERN (SAVE) zu wählen.
Sie können dieses Buch so lesen, wie es für Sie am besten passt. Wenn Sie jedoch unter Zeitdruck stehen oder weniger an Details interessiert sind, können Sie problemlos alle rein technischen Informationen auslassen (zum betreffenden Symbol siehe weiter hinten in dieser Einleitung). Darüber hinaus können Sie auch alle grau hinterlegten Kästen auslassen. Zwar enthalten sie interessante Informationen, jedoch nichts, was für das Verständnis des Themas benötigt wird. Wenn Sie aber doch alles lesen, seien Sie gnädig wegen so mancher (absichtlicher) Wiederholung.
Folgende Annahmen treffen wir über Sie als Leser sowie Ihren Computer:
R für Dummies gliedert sich in sechs Teile. Folgende Themen erwarten Sie in den einzelnen Teilen:
In diesem Teil lernen Sie R kennen und schreiben Ihr erstes Skript. Sie machen sich mit dem sehr nützlichen Vektorkonzept in R vertraut und führen Berechnungen simultan auf vielen Variablen aus. Sie lernen den R-Arbeitsbereich (englisch workspace) kennen, das heißt, wie Sie Variablen erzeugen, verändern und entfernen. Sie finden heraus, wie Sie Ihre Arbeit speichern und wie Sie Skriptdateien laden und verändern, die Sie in vorangegangenen Sitzungen erstellt haben. Darüber hinaus zeigen wir Ihnen ein paar Grundlagen in R, zum Beispiel wie Sie den Funktionsumfang erweitern, indem Sie Packages installieren.
In diesem Teil füllen wir Sie ab mit den drei R: Reading (lesen), wRiting (schreiben) und aRithmetic (rechnen) – mit anderen Worten, wie Sie mit Text und Zahlen arbeiten, und nicht zu vergessen: mit Datumswerten. Hier lernen Sie auch die für das Leben mit R unerlässlichen Konzepte der Listen und Datensätze (data frame) kennen.
R ist eine Programmiersprache. Daher ist es unerlässlich, dass Sie wissen, wie Sie Funktionen schreiben und durchblicken. In diesem Teil zeigen wir Ihnen genau das sowie wie Sie die Ablaufsteuerung mit if
beeinflussen oder Code wiederholt mithilfe von Schleifen ausführen. Für den unwahrscheinlichen Fall bereiten wir Sie auch auf den Umgang mit Warnungen und Fehlermeldungen vor, die Sie möglicherweise mit Ihrem Code hervorrufen. Auch für die anschließende Fehlersuche machen wir Sie fit.
In diesem Teil stellen wir Ihnen die verschiedenen Datenstrukturen vor, die Sie in R verwenden können. Dazu gehören Listen und Datensätze (data frame). Sie erfahren, wie Sie Daten in R hinein- sowie herausbekommen (zum Beispiel indem Sie Dateien einlesen oder aus der Zwischenablage kopieren). Darüber hinaus sehen Sie, wie R mit anderen Anwendungen zusammenarbeiten kann, zum Beispiel mit Microsoft Excel.
Im Anschluss daran entdecken Sie, wie einfach es ist, fortgeschrittene Manipulationen an Ihren Daten vorzunehmen. Wir zeigen Ihnen, wie Sie eine Teilmenge Ihrer Daten auswählen und wie Sie sie sortieren und ordnen. Wir erklären, wie Sie verschiedene Datensätze vereinigen können, wenn sie gemeinsame Spalten haben. Schließlich zeigen wir Ihnen eine sehr leistungsstarke generische Strategie, Daten zu teilen oder zu kombinieren und Funktionen auf Teilmengen Ihrer Daten anzuwenden. Nachdem Sie diese Strategie verstanden haben, können Sie sie immer wieder verwenden und anspruchsvolle Datenanalysen in wenigen Schritten durchführen.
Es juckt uns natürlich, Ihnen ein paar statistische Analysen zu zeigen. Schließlich ist Statistik die Domäne von R. Wir versprechen jedoch, es einfach zu halten. Nachdem Sie diesen Teil gelesen haben, werden Sie wissen, wie Sie Ihre Variablen und Daten mit R beschreiben und verdichten. Sie werden einige klassische Tests (zum Beispiel den t-Test) ausführen und Zufallszahlen für Simulationen erzeugen und verwenden.
Schließlich zeigen wir Ihnen ein paar Grundlagen, wie Sie lineare Modelle einsetzen können – zum Beispiel lineare Regression und Varianzanalyse (ANOVA). Darüber hinaus zeigen wir Ihnen, wie Sie R verwenden, um Vorhersagen auf Basis Ihrer Modelle zu treffen.
Es heißt: »Ein Bild sagt mehr als tausend Worte.« Das ist sicherlich wahr, wenn es darum geht, Ihre Analysen mit anderen zu teilen. In diesem Teil entdecken Sie, wie Sie einfache und anspruchsvolle Grafiken einsetzen, um Ihre Daten zu veranschaulichen. Von Balken- und Liniendiagrammen angefangen geht es weiter bis hin zu lattice-Grafiken, mit denen Sie mehrdimensionale Daten in Scheiben schneiden und anschaulich machen können.
In diesem Teil zeigen wir Ihnen, wie Sie Dinge in R erledigen, für die Sie wahrscheinlich bis heute Microsoft Excel verwendet haben – zum Beispiel Pivot- und Wertetabellen (englisch lookup tables). Darüber hinaus geben wir Ihnen zehn Tipps, wie Sie am besten mit Paketen (package) arbeiten, die nicht Teil des Basissystems sind.
Im Laufe der Lektüre dieses Buchs werden Sie über verschiedene Symbole stolpern. Diese Symbole kennzeichnen bestimmte Informationen.
Es gibt nur einen Weg, R zu lernen: es zu nutzen! In diesem Buch versuchen wir, Sie mit R bekannt zu machen, jedoch müssen Sie sich selbst an Ihren PC setzen und damit experimentieren. Tun Sie irgendetwas, damit das Buch offen neben dem Computer liegen bleibt, und greifen Sie in die Tasten!
Teil I