R für Dummies. Andrie de Vries
Чтение книги онлайн.

Читать онлайн книгу R für Dummies - Andrie de Vries страница 20

Название: R für Dummies

Автор: Andrie de Vries

Издательство: John Wiley & Sons Limited

Жанр: Программы

Серия:

isbn: 9783527836093

isbn:

СКАЧАТЬ 3

      Die Grundlagen von R

      IN DIESEM KAPITEL

       Funktionen und Argumente verwenden

       Klaren und lesbaren Code schreiben

       R mit Paketen erweitern

      Bevor Sie R auf Ihre Daten loslassen, brauchen Sie noch ein paar grundlegende Informationen über R.

      In Kapitel 2 zeigen wir Ihnen, wie Sie die Eingabezeile verwenden und wie Sie mit dem Arbeitsbereich umgehen. Wenn Sie das Kapitel gelesen haben, können Sie ein einfaches Skript schreiben und die Funktionen print(), paste() und readline() zu Ihrem Vorteil einsetzen – zumindest in der einfachsten Version. Dass Funktionen in R jedoch weit mehr können, zeigen wir Ihnen in diesem Kapitel.

      Je mehr Argumente Sie in Ihren Funktionen verwenden und je mehr Funktionen Sie kennen und einsetzen, desto komplexer werden Ihre Skripte. Das ist gut so. Weniger gut wäre es, wenn Sie sich darin nicht mehr zurechtfinden oder Dritte mit Ihrem Code in den Wahnsinn treiben. Um das zu vermeiden, bieten sich ein paar einfache organisatorische Grundsätze an, die wir Ihnen in diesem Kapitel vorstellen.

      Zu guter Letzt zeigen wir Ihnen, wie Sie bei Ihrer Arbeit nicht jedes Mal das Rad neu erfinden müssen. Verwenden Sie einfach Pakete, die von äußerst versierten Mitgliedern der R-Gemeinde entwickelt wurden und häufig sehr gut auf Ihre jeweilige Problemstellung passen. Die Zahl der beitragenden Entwickler geht in die Hunderte. In diesem Kapitel zeigen wir Ihnen, wo Sie solche Pakete finden und wie Sie sie einsetzen.

      Vektorwertige Funktionen verwenden

      Vektorwertige Funktionen sind eine sehr hilfreiche Einrichtung von R. Leider haben Programmierer, die von anderen Sprachen kommen, zunächst Schwierigkeiten damit. Eine vektorwertige Funktion manipuliert nicht nur eine einzige Eingangsgröße, sondern gleich einen ganzen Vektor. Der erste Impuls geht bei vielen Programmierern dahin, eine Schleife zu programmieren, die die Elemente des Vektors einzeln bearbeitet. Widerstehen Sie dieser Versuchung und vertrauen Sie uns! Mit vektorwertigen Funktionen geht alles viel einfacher – und Ihr Code wird schöner.

      Um vektorwertige Funktionen ausprobieren zu können, benötigen Sie zunächst einmal einen Vektor. Dazu verwenden Sie die Funktion c() (von englisch combine = verketten). Die einzelnen Elemente trennen Sie durch Kommata.

      Sehen wir uns ein Beispiel an. Nehmen wir an, Oma spielt mit ihrer Freundin Margarete Basketball und Sie schreiben sich die Körbe von Oma in jedem Spiel auf. Nach sechs Spielen wollen Sie wissen, wie viele Körbe Oma in dieser Saison bereits geworfen hat. Die Körbe pro Spiel können Sie in einem Vektor zusammenfassen:

       > koerbe.von.Oma <- c(12, 4, 4, 6, 9, 3)

       > koerbe.von.Oma

       [1] 12 4 4 6 9 3

      Um jetzt die Gesamtzahl der von Oma geworfenen Körbe zu ermitteln, geben Sie ein:

       > sum(koerbe.von.Oma)

       [1] 38

      Natürlich würden Sie dasselbe Ergebnis erhalten, wenn Sie den Vektor Element für Element durchgehen und dabei jedes neue Element zur Summe der bereits abgearbeiteten Elemente hinzufügen. Dies wäre jedoch deutlich aufwendiger, würde mehr Code erfordern und die Berechnung würde länger dauern. Bei sechs Elementen wäre das sicher noch kein Beinbruch, aber bei ein paar Tausend schon.

      Tatsächlich gibt es diese Art von Vektorisierung in vielen Programmiersprachen. Funktionen, die auf diese Art arbeiten, summieren die Elemente eines Vektors auf; sie nehmen alle Werte des Vektors und berechnen ein Ergebnis.

      Auch kann R Funktionen mit Vektoren kombinieren. Diese Art von Vektorisierung ist ziemlich einzigartig und wesentlicher Bestandteil der unglaublichen Macht von R als Sprache. Ziemlich viele Menschen haben beim Verständnis dieses Konzepts anfangs Probleme, dies ändert sich jedoch ziemlich schnell, wenn sie das Ganze selbst umsetzen.

      Nehmen wir zum Beispiel die Funktion paste(), der Sie im letzten Kapitel schon begegnet sind. Zunächst erschaffen Sie zwei Vektoren (zum Beispiel einen mit den Vornamen und einen mit den Nachnamen). Dann können Sie mit der Funktion paste() beide kombinieren.

       > vornamen <- c("Andrie", "Joris")

       > nachnamen <- c("de Vries", "Meys")

       > paste(vornamen, nachnamen)

       [1] "Andrie de Vries" "Joris Meys"

      Angenommen, die Mitglieder Ihrer Familie tragen denselben Nachnamen. Dann können wir diesen mithilfe von paste() allen Vornamen gleichzeitig hinzufügen. Probieren wir es aus (dieses Buch führt gleichzeitig zum Diplom in belgischer Namenskunde):

       > vornamen <- c("Joris", "Carolien", "Koen")

       > nachname <- "Meys"

       > paste(vornamen,nachname)

       [1] "Joris Meys" "Carolien Meys" "Koen Meys"

      Wie Sie sehen, nimmt R den Vektor vornamen und klebt den Inhalt der Variablen nachname an jedes Element von vornamen dran. Das ist doch wirklich klasse, oder?

      Hinter den Kulissen kombiniert R zwei Vektoren. In unserem Beispiel hat der zweite Vektor nur ein Element. Damit R die beiden Vektoren elementweise zusammenfügen kann, wird von paste() der zweite Vektor einfach so lange wiederholt, bis beide die gleiche Zahl an Elementen haben. Passenderweise nennt man das Recycling (mehr dazu finden Sie in Kapitel 4).

      Das sieht nicht wirklich kompliziert aus, oder? Alles, was Sie brauchen, sind zwei Vektoren, die Sie in die Funktion stecken, also diese als Argumente übergeben. In Kapitel 5 erfahren Sie mehr zu paste().

      Argumente an Funktionen übergeben

      Den meisten Funktionen in R können Sie mithilfe von zusätzlichen Argumenten СКАЧАТЬ