Читать книгу R für Data Science - Hadley Wickham - Страница 47

Оглавление

KAPITEL 2

Workflow: Grundlagen

Mittlerweile haben Sie schon etwas Erfahrung darin, R-Code auszuführen. Ich habe zwar nicht viele Details erläutert, doch zweifellos haben Sie die Grundlagen verinnerlicht, denn sonst hätten Sie dieses Buch schon frustriert weggeworfen! Etwas Frustration gehört dazu, wenn Sie mit der Programmierung in R beginnen, weil die Syntax ziemlich pingelig in Bezug auf Zeichensetzung ist und selbst ein einziges Zeichen an der falschen Stelle zu Beschwerden führt. Doch obwohl Sie damit rechnen müssen, etwas frustriert zu sein, trösten Sie sich damit, dass das sowohl typisch als auch vorübergehend ist: Es passiert jedem, und die einzige Methode, darüber hinwegzukommen, ist praktisches Probieren.

Bevor wir tiefer eindringen, wollen wir sicherstellen, dass Sie eine solide Basis beim Ausführen von R-Code haben und dass Sie etwas über die hilfreichsten RStudio-Features wissen.

Grundlagen der Codierung

Sehen wir uns zunächst einige Grundlagen an, die bisher unter den Tisch gefallen sind, um möglichst schnell zur Darstellung von Diagrammen zu kommen. R lässt sich als Rechner verwenden:

1 / 200 * 30

#> [1] 0.15

(59 + 73 + 2) / 3

#> [1] 44.7

sin(pi / 2)

#> [1] 1

Neue Objekte erstellen Sie mit dem Zuweisungsoperator <-:

x <- 3 * 4

Alle R-Anweisungen, mit denen Sie Objekte erstellen, sind sogenannte Zuweisungsanweisungen und haben die gleiche Form:

object_name <- value

Gedanklich lesen Sie diesen Code als: »Das Objekt name bekommt den Wert value.« Wenn Sie viele Zuweisungen schreiben, ist es mühsam, <- einzutippen. Werden Sie nicht faul, indem Sie = schreiben: Es funktioniert zwar, stiftet später aber Verwirrung. Nutzen Sie stattdessen die Tastenkombination von R: Alt + (Minuszeichen). RStudio umgibt die Zeichenfolge <- automatisch mit Leerzeichen, was eine gute Praxis der Codeformatierung ist. Bestenfalls ist der Code nur schlecht lesbar, also gönnensieihrenaugenalsoeinepause und verwenden Sie Leerzeichen.

Was macht einen Namen aus?

Objektnamen müssen mit einem Buchstaben beginnen und dürfen nur Buchstaben, Ziffern, den Unterstrich und den Punkt enthalten. Möchten Sie aussagekräftige Namen vergeben, brauchen Sie eine Konvention für die Benennung mit mehreren Wörtern. Ich empfehle die Schreibweise snake_case, bei der Sie kleingeschriebene Wörter durch einen Unterstrich trennen:

i_use_snake_case

otherPeopleUseCamelCase

some.people.use.periods

And_aFew.People_RENOUNCEconvention

Auf den Codierungsstil kommen wir in Kapitel 15 zurück.

Ein Objekt können Sie inspizieren, indem Sie seinen Namen eingeben:

x

#> [1] 12

Nehmen Sie eine andere Zuweisung vor:

this_is_a_really_long_name <- 2.5

Um dieses Objekt zu inspizieren, probieren Sie die Autovervollständigung von RStudio aus: Tippen Sie »this« ein, drücken Sie Tab und geben Sie weitere Zeichen ein, bis Sie ein eindeutiges Präfix haben. Dann drücken Sie Eingabe.

Hoppla, Sie haben einen Fehler gemacht! this_is_a_really_long_name sollte den Wert 3,5 und nicht 2,5 haben. Mit einer anderen Tastenkombination lässt sich dies korrigieren. Tippen Sie »this« ein und drücken Sie MacBefehl/Strg + Pfeil oben. Damit listen Sie alle Befehle auf, die mit diesen Buchstaben beginnen. Navigieren Sie mit den Pfeiltasten und drücken Sie dann Eingabe, um den Befehl erneut einzugeben. Ändern Sie 2.5 in 3.5 und führen Sie den Befehl erneut aus.

Geben Sie eine weitere Zuweisung ein:

r_rocks <- 2 ^ 3

Probieren Sie, das Objekt zu inspizieren:

r_rock

#> Error: object 'r_rock' not found

R_rocks

#> Error: object 'R_rocks' not found

Zwischen Ihnen und R besteht ein unausgesprochener Vertrag: R nimmt Ihnen die mühsamen Berechnungen ab, doch im Gegenzug müssen Sie vollkommen genau in Ihren Anweisungen sein. Rechtschreibfehler spielen eine Rolle. Und auch die Groß-/Kleinschreibung spielt eine Rolle.

Funktionen aufrufen

R hat eine große Sammlung von integrierten Funktionen, die in folgender Art und Weise aufgerufen werden:

function_name(arg1 = val1, arg2 = val2, ...)

Probieren wir seq() aus, die regelmäßige *Seq*uenzen von Zahlen erzeugt. Und weil wir gerade dabei sind, sehen wir uns noch einige hilfreiche Features von RStudio an. Tippen Sie se ein und drücken Sie Tab. Daraufhin zeigt ein Pop-up mögliche Vervollständigungen an. Spezifizieren Sie seq(), indem Sie mehr Zeichen eintippen (ein »q«), um die Auswahl eindeutig zu machen, oder mit den Pfeiltasten einen Eintrag auswählen. Beachten Sie die eingeblendeten QuickInfos, die die Argumente der Funktion und ihren Zweck nennen. Wenn Sie mehr Hilfe brauchen, drücken Sie F1, um sämtliche Einzelheiten im Hilferegister in der rechten unteren Ecke zu erhalten. Drücken Sie Tab noch einmal, wenn Sie die gewünschte Funktion ausgewählt haben. RStudio fügt ein Paar runde Klammern hinzu. Geben Sie die Argumente 1, 10 ein und drücken Sie Eingabe:

seq(1, 10)

#> [1] 1 2 3 4 5 6 7 8 9 10

Tippen Sie den folgenden Code ein und achten Sie auf ähnliche Hilfeassistenz bei den paarigen Anführungszeichen:

x <- "hello world"

Anführungszeichen und Klammern müssen immer paarweise auftreten. RStudio greift Ihnen dabei unter die Arme, doch man kann es trotzdem vermasseln und landet in einer Diskrepanz. Sollte das passieren, zeigt R das Fortsetzungszeichen »+« an:

> x <- "hello

+

Am Pluszeichen erkennen Sie, dass R auf weitere Eingaben wartet und nicht annimmt, dass Sie bereits fertig sind. Normalerweise heißt das, dass Sie entweder ein Anführungszeichen oder eine schließende runde Klammer vergessen haben. Ergänzen Sie das fehlende Paar oder drücken Sie Esc, um die Eingabe des Ausdrucks abzubrechen und es erneut zu versuchen.

Wenn Sie eine Zuweisung vornehmen, bekommen Sie den Wert nicht zu sehen. Dann sind Sie versucht, das Ergebnis sofort zu überprüfen:

y <- seq(1, 10, length.out = 5)

y

#> [1] 1.00 3.25 5.50 7.75 10.00

Diese häufig vorkommende Aktion lässt sich verkürzen, indem man die Zuweisung in Klammern einschließt. Dadurch wird zum einen die Zuweisung ausgeführt und zum anderen »eine Ausgabe auf dem Bildschirm« veranlasst:

(y <- seq(1, 10, length.out = 5))

#> [1] 1.00 3.25 5.50 7.75 10.00

Werfen Sie nun einen Blick auf die Umgebung (Environment) im rechten oberen Bereich:


Hier können Sie sämtliche Objekte sehen, die Sie erstellt haben.

Übungen

1 Weshalb funktioniert der folgende Code nicht?

my_variable <- 10 my_variable

#> Error in eval(expr, envir, enclos):

#> object 'my_variable' not found

Schauen Sie genau hin! (Dies mag zwar wie eine Übung in Sinnlosigkeit aussehen, doch ein Gehirntraining, um selbst den winzigsten Unterschied zu erkennen, zahlt sich bei der Programmierung aus.)

1 2.Korrigieren Sie die folgenden R-Befehle, sodass sie korrekt ausgeführt werden:

library(tidyverse)

ggplot(dota = mpg) +

geom_point(mapping = aes(x = displ, y = hwy))

fliter(mpg, cyl = 8)

filter(diamond, carat > 3)

1 3.Drücken Sie Alt + Umschalt + K. Was passiert? Wie gelangen Sie über die Menüs an die gleiche Stelle?

R für Data Science

Подняться наверх