HOWTO · R

Auskommentieren von Mehrzeilern in R

In diesem Artikel erfahren Sie, wie Sie Mehrzeilen in R auskommentieren können, ohne manuell ein #-Zeichen an den Anfang jeder der auszukommentierenden Zeilen schreiben zu müssen.

Auf dieser Seite

R bietet keine Syntax für mehrzeilige Kommentare: # leitet einen Kommentar ein, der bis zum Ende der jeweiligen Zeile reicht. Um mehrere Zeilen vorübergehend zu deaktivieren, setzen Sie # an den Anfang jeder Zeile. Um den Code wieder zu aktivieren, entfernen Sie diese Präfixe. Editoren können das für eine Auswahl automatisch erledigen.

Führen Sie dieses Beispiel aus:

Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.

# This line is a comment.
total <- 2 + 3
print(total)
[1] 5

Die erste Zeile wird von R als Code ignoriert; die Zuweisung und der Aufruf von print() bleiben ausführbar. Der bereitgestellte Lauf wurde erfolgreich abgeschlossen und gab [1] 5 aus.

So funktionieren Kommentare in R

Das Kommentarzeichen gilt nur für den Rest der aktuellen Zeile. In answer <- 42 # keep this value führt R beispielsweise die Zuweisung aus und ignoriert den Text nach #. Eine mit # beginnende Zeile kann den Code auch dokumentieren, ohne das Verhalten des Skripts zu ändern. Da jeder Kommentar am Zeilenumbruch endet, besteht eine Gruppe von Kommentarzeilen weiterhin aus einzelnen Zeilenkommentaren und nicht aus einem Blockkommentar.

Wenn Sie Code auskommentieren, setzen Sie das Präfix vor jede ausgewählte Zeile, auch vor Fortsetzungszeilen. Bleibt auch nur eine ausführbare Zeile unkommentiert, führt R sie beim Einlesen des Skripts weiterhin aus. Beim Wiederherstellen des Codes gehen Sie umgekehrt vor: Entfernen Sie das Kommentarpräfix aus jeder Zeile, die wieder ausgeführt werden soll.

Einen Codeblock im Editor auskommentieren

Wählen Sie in RStudio die Zeilen aus und drücken Sie unter Windows Ctrl+Shift+C oder unter macOS Command+Shift+C. Derselbe Befehl schaltet Kommentare für die Auswahl ein und aus. Prüfen Sie daher das Ergebnis, bevor Sie den Code ausführen. Details zum Editor finden Sie unter RStudio-Tastenkürzel.

In Notepad++ unter Windows schaltet Ctrl+Q Kommentare für ausgewählte Zeilen ein und aus. Führen Sie in Emacs M-x comment-region aus; zum Rückgängigmachen verwenden Sie M-x uncomment-region. Tastenkürzel hängen vom Editor, Betriebssystem, Tastaturlayout und der Auswahl ab. Weicht ein Kürzel ab, sehen Sie in der Befehlsliste des Editors nach. Diese Befehle fügen Zeilenpräfixe ein oder entfernen sie; sie führen keine neue Kommentarsyntax für R ein.

Warum scan() keinen mehrzeiligen Kommentar erstellt

scan() liest Werte aus einer Verbindung oder einer Eingabe und gibt sie an R zurück. Die Funktion fügt keinen Text in die Quelldatei ein und macht eingegebene Zeilen nicht zu Kommentaren. Ebenso entfernt rm() ein R-Objekt aus dem Arbeitsbereich, aber keinen Quelltext. Beliebigen Text in die R-Konsole einzugeben, ist keine gültige Methode, um ein Skript auszukommentieren, denn R versucht, jede eingegebene Zeile als Eingabe zu analysieren. Verwenden Sie stattdessen den Kommentarbefehl Ihres Editors oder setzen Sie # vor jede Quelltextzeile.

Zwischenablage-Text mit einem R-Helfer in #-Kommentare umwandeln

Wenn Ihr Editor keinen praktischen Befehl für eine Auswahl bietet, setzt der optionale Helfer FormatComment # und Leerzeichen vor die Zeilen in der Zwischenablage. Die Aufrufe readClipboard() und writeClipboard() sind Windows-spezifisch. Definieren Sie die Funktion in einer R-Sitzung unter Windows, kopieren Sie einfachen Text oder Code und rufen Sie sie dann auf. Prüfen Sie das Ergebnis, bevor Sie etwas in einem Skript ersetzen. Der Helfer schreibt den formatierten Text zurück in die Zwischenablage. Fügen Sie ihn daher zunächst an einer sicheren Stelle ein, wenn Sie den ursprünglichen Inhalt der Zwischenablage behalten möchten.

Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.

FormatComment <- function() {
  lines <- readClipboard()
  commented <- paste0("#   ", lines)
  writeClipboard(commented, format = 1)
  invisible(commented)
}

Der bereitgestellte Testfall für den Helfer wurde erfolgreich abgeschlossen; es wurde keine Ausgabe gemeldet. Daraus lässt sich kein Verhalten mit einer echten Windows-Zwischenablage oder in einer interaktiven Sitzung ableiten. Der Helfer ist für kopierte Textzeilen gedacht. Prüfen Sie den eingefügten Text, besonders wenn der Quelltext Einrückungen oder Fortsetzungssyntax enthält. Für die normale Codebearbeitung lässt sich der Kommentar-Umschalter des Editors meist leichter rückgängig machen und verändert die Formatierung seltener.