Bis jetzt haben Sie R im interaktiven Modus verwendet, nach jeder Anweisung die
-Taste gedrückt und prompt das Ergebnis erhalten. Mit anderen Worten: Anweisung – Ergebnis – Anweisung – Ergebnis – und so weiter .
In diesem Abschnitt machen Sie einen großen Schritt nach vorn und bringen R bei, erst ein paar Anweisungen zu sammeln und dann gemeinsam auszuführen. Die Funktion, die Sie dafür benötigen, heißt source()
( von englisch source = Quelle). Sie hilft Ihnen dabei, auf Quellcode zuzugreifen.
Damit Sie die source
-Funktion mit Ihrem Skript verwenden können, geben Sie das Skript zunächst in einem Editor ein. In RStudio ist der Editor links oben zu finden (siehe Abbildung 2.5). Wie in jedem anderen Editor auch bewirkt das Drücken der
-Taste lediglich, dass der Cursor in die nächste Zeile rutscht – ausgeführt wird nichts.
Geben Sie folgende Zeilen in Ihrem Editor ein (in RStudio im linken oberen Fenster). Aber aufgepasst: In der letzten Zeile hat sich etwas zum Code von vorhin verändert – die Funktion print
()
ist dazugekommen.
h <- "Hallo"
deinname <- readline("Wie lautet Dein Name? ")
print(paste(h, deinname))
Wenn Sie Code mit der Funktion source()
einlesen und ausführen wollen, vergessen Sie nicht, die Funktion print()
überall dort einzusetzen, wo Sie eine Ausgabe erwarten. An dieser Stelle unterscheiden sich der interaktive und der Source-Modus von R. Während in Ersterem Ergebnisse immer angezeigt werden, müssen Sie diesen Wunsch in Letzterem mithilfe der Funktion print()
klar zu erkennen geben.
Jetzt können Sie mehrere Codezeilen im Editor eingeben, ohne dass jede Zeile gleich von R ausgeführt wird. Wenn alles schön und fehlerfrei ist, schicken Sie die Anweisungen an R.
Mit RStudio oder RGui haben Sie dabei die Wahl zwischen drei verschiedenen Möglichkeiten:
Jede einzelne Zeile vom Editor an die Konsole schicken. Klicken Sie irgendwo in die Codezeile, die Sie ausführen wollen, und drücken Sie in RGui die Tastenkombination + und in RStudio die Tastenkombination + oder klicken Sie auf die Schaltfläche RUN (RStudio).
Mehrere markierte Zeilen ausführen. Markieren Sie die gewünschten Zeilen und verwenden Sie in RGui die Tastenkombination + und in RStudio die Tastenkombination + oder klicken Sie auf die Schaltfläche RUN (RStudio).
Schicken Sie das ganze Skript an die Konsole (entspricht der Verwendung von source()). In RGui klicken Sie irgendwo in Ihr Editorfenster und wählen dann BEARBEITEN | ALLES AUSFüHREN (EDIT | RUN ALL). In RStudio klicken Sie irgendwo in Ihr Editorfenster und verwenden die Tastenkombination ++ oder klicken auf die Schaltfläche SOURCE.
Die Tastenkombinationen sind nur in RStudio beziehungsweise RGui definiert. Andere Editoren haben möglicherweise andere Tastenkombinationen oder bieten diesen Service gar nicht.
Jetzt können Sie das ganze Skript an die R-Konsole schicken. Klicken Sie dazu auf die Schaltfläche SOURCE oben rechts im Editorfenster oder wählen Sie CODE | SOURCE. Das Skript wird ausgeführt, bis es auf Anwendereingaben stößt. Dort erwartet es geduldig Ihre Eingabe in der Konsole. Ihr Bildschirm sollte in etwa so aussehen wie in Abbildung 2.5. Schauen Sie auch mal auf das Arbeitsbereichsfenster (oben rechts in RStudio). Dort werden Ihre beiden Variablen h
und deinname
samt Inhalt aufgelistet.
Wenn Sie die Schaltfläche SOURCE anklicken und das Skript noch nicht gespeichert haben, erscheint die Anweisung source('~/.active-rstudio-document')
in der Konsole. Genau genommen speichert RStudio den Inhalt des Editors in eine temporäre Datei und verwendet anschließend die Funktion source()
, um das Skript in die Konsole einzulesen. Behalten Sie die Funktion im Hinterkopf, sie begegnet uns wieder.
Abbildung 2.5Ein Skript vom Editor an die Konsole schicken
Ihr Programm mit ausgeben
Wenn Sie den kleinen Pfeil direkt neben der Schaltfläche SOURCE anklicken, werden Ihnen zwei verschiedene Ausgabemodi angeboten, wie in Abbildung 2.6gezeigt. Durch Auswählen der gerade beschriebenen Schaltfläche wird Ihr Skript ohne ECHO verarbeitet. Das bedeutet, dass R das Skript in einem Rutsch durcharbeitet, aber keine Ausgaben an die Konsole schickt.
Abbildung 2.6Die Verarbeitung Ihres Skripts mit und ohne ECHO
Wenn Sie die zweite Option wählen, prozessiert R das gesamte Skript in einem Rutsch, aber dieses Mal wird jede einzelne Befehlszeile in der Konsole dargestellt. Vergleichen Sie beide Optionen miteinander!
Sie können ECHO auch außerhalb von RStudio verwenden, indem Sie die Funktion SOURCE() mit dem ECHO-Argument verwenden. Einen Überblick über Funktionen und Argumente erhalten Sie in Kapitel 3und noch einmal wesentlich detaillierter in Kapitel 8.
Für Ihren Code spielt es keine Rolle, ob Sie SOURCE mit oder ohne ECHO verwenden. Sie können ECHO zum Beispiel verwenden, wenn Sie ein langes Skript ausführen und, während es ausgeführt wird, sehen wollen, welcher Teil gerade von R bearbeitet wird.
Hilfe zu Funktionen finden
Eine detaillierte Darstellung der R-Hilfe finden Sie in Kapitel 11. Etwas können wir Ihnen aber schon jetzt verraten. Um Hilfe zu einer Funktion zu bekommen, geben Sie ein Fragezeichen gefolgt von dem Funktionsnamen ein. Um zum Beispiel Hilfe zur Funktion paste()
zu erhalten, geben Sie dies ein:
> ?paste
Daraufhin öffnet sich das Hilfefenster. In RStudio öffnet sich die Registerkarte HELP im unteren rechten Fenster. Andere Editoren öffnen eine lokale Webseite in Ihrem Standardbrowser.
Sie können auch help
gefolgt von der gesuchten Funktion in Klammern eingeben, etwa so:
> help(paste)
Sich im Arbeitsbereich zurechtfinden
Bis hierhin haben Sie bereits einige Variablen erzeugt. Diese sind Teil dessen, was in R mit Arbeitsbereich (englisch workspace ) bezeichnet wird. Der Arbeitsbereich umfasst unter anderem alle Variablen und Funktionen (zusammengefasst unter dem Begriff Objekt ), die Sie während Ihrer Sitzung erzeugt haben, sowie alle Pakete, die Sie geladen haben. Das schauen wir uns jetzt genauer an.
Es könnte ja durchaus passieren, dass Sie eine Liste aller bereits erzeugten Objekte benötigen. Dafür gibt es die Funktion ls()
. Geben Sie Folgendes in der Konsole ein:
> ls()
Читать дальше