Читать книгу R für Dummies - Andrie de Vries - Страница 68

Argumente an Funktionen übergeben

Оглавление

Den meisten Funktionen in R können Sie mithilfe von zusätzlichen Argumenten weitere Hinweise für die Ausführung geben. Wenn Sie print("Hallo Welt!") eingeben, weisen Sie dem ersten Argument x der Funktion print() den Wert "Hallo Welt!" zu. Dass das erste Argument der Funktion tatsächlich x heißt und nicht etwa y, können Sie selbst in der Hilfe zur Funktion print() nachschlagen (zum Beispiel mit ?print()).

In R gibt es zwei grundlegend verschiedene Typen von Argumenten:

 Argumente mit Standardwerten

 Argumente ohne Standardwerte

Wenn ein Argument keinen Standardwert hat, kann es entweder erforderlich oder optional sein. Das erste Argument ist fast immer erforderlich. Probieren Sie mal Folgendes:

> print()

R beschwert sich, dass das Argument x fehlt:

Fehler in print.default() : Argument "x" fehlt (ohne Standardwert)

Sie können den Namen des Arguments auch explizit übergeben:

> print(x = "Ist das nicht lustig?")

Na ja – lustig oder nicht –, es funktioniert jedenfalls. Aber warum kann man den Bezeichner, das x, einfach weglassen, wie oben bereits mehrmals geschehen? Das liegt daran, dass R auf die Bezeichner verzichten kann, wenn Sie die Reihenfolge der Argumente (siehe Hilfe) genau einhalten. Die Funktion print() hat nur ein erforderliches Argument, daher kann R hier auch nicht durcheinanderkommen. Was die Hilfeseiten noch an Informationen für Sie bereithalten, lesen Sie in Kapitel 11.

Wenn Sie die Argumente von Funktionen genau in der Reihenfolge übergeben, wie es in den Hilfeseiten steht, können Sie die Bezeichner weglassen. Umgekehrt können Sie die Reihenfolge beliebig wählen, wenn Sie alle Bezeichner mit angeben.

Probieren Sie mal folgendes Beispiel aus:

> print(digits = 4, x = 11/7)

[1] 1.571

Moment mal, von einem Argument namens digits war in den Hilfeseiten über print() doch nie die Rede! Hier ist die Lösung. Da hatte sich nicht print() beschwert, sondern print.default(). Offenbar ist für einfache »Hallo Welt!«-Argumente oder Zahlen die Funktion print.default() zuständig. Rufen wir die Hilfeseite für print.default() auf, ist die Welt wieder in Ordnung: Das Argument namens digits wird beschrieben.

Die Funktion print() ist eine generische Funktion. Sie sieht sich zunächst den Typ des Objekts an, das als Argument übergeben wurde. Dann entscheidet sie, welche Funktion zur Ausführung der Aufgabe ausgewählt wird. Diese Funktion heißt Methode und ist Bestandteil des übergebenen Objekts. Mehrere Objekte können sich eine Methode teilen, wenn diese nicht mit einer speziellen, nur für das Objekt bestimmten Methode überschrieben wurde. Diese Methode nennt man Standardmethode (englisch default). In unserem Fall handelt es sich um die Methode print.default(). Es gibt auch Objekte, für die R keine Standardmethode hat. Darüber lesen Sie mehr in Kapitel 8. Für den Moment genügt es, wenn Sie im Hinterkopf behalten, dass die benötigten Argumente für eine Funktion manchmal über mehrere Hilfeseiten verstreut sein können.

Wenn Sie vergessen haben, welche Argumente Sie für Ihre Funktion verwenden können, schauen Sie bitte auch auf die Hilfeseiten der für das gewünschte Argument zuständigen Methode. Meist finden Sie Hinweise zu zuständigen Methoden am Ende der Hilfeseite. Um die Hilfe der paste()-Funktion aufzurufen, tippen Sie ?paste in Ihre Konsole.

R für Dummies

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