Название: R für Dummies
Автор: Andrie de Vries
Издательство: John Wiley & Sons Limited
Жанр: Программы
isbn: 9783527836093
isbn:
> paste("Hallo", "Welt!")
[1] "Hallo Welt!"
Mit dem Anwender kommunizieren
Sie können auch Skripte schreiben, die mit dem Anwender kommunizieren. Um dem Nutzer Fragen zu stellen, verwenden Sie zum Beispiel die Funktion readline
()
. Im folgenden Codeausschnitt lesen Sie einen Wert von der Tastatur ein und weisen ihn der Variablen deinname
zu:
> h <- "Hallo"
> deinname <- readline("Wie lautet Dein Name? ")
Wie heisst du? Andrie
> paste(h, deinname)
[1] "Hallo Andrie"
Je länger Ihr Code wird, desto umständlicher wird es, alles über die Konsole einzugeben – mit Drücken der
-Taste nach jeder Zeile. Wie schön wäre es, zum Beispiel die drei (Eingabe-)Zeilen oben erst einzugeben, etwaige Fehler zu beseitigen und dann alle auf einmal ausführen zu lassen. Wie das geht, zeigen wir Ihnen im nächsten Abschnitt.Ein Skript einlesen
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
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.5 Ein 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.6 gezeigt. 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.6 Die 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 СКАЧАТЬ