ESS

Man kann R oder S-plus direkt im Emacs aufrufen und zwar mit: M-x R. Gleichzeitig schaltet der Emacs dabei automatisch in den Inferior ESS mode.

Vorteile und Arbeitsweise im ESS-Mode: Man arbeitet im Emacs in einem geteilten Fenster (C-x 2). Im einen Fenster lässt man R laufen (s. oben) und im anderen werden R Anweisungen "komponiert". Alle Funktionen und sonstige Auswertungen schreibt man in dieses Fenster und speichert die so erhaltene Datei unter <filename>.R ab. Es ist wichtig, dass der Name mit ".R" aufhört, weil dann Emacs automatisch weiss, dass hier R-Anweisungen und Funktionen stehen. Arbeitet man später an seiner Auswertung weiter kann die einmal kreierte Datei <filename>.R geöffnet werden, worauf Emacs automatisch in den ESS-mode umschaltet.

Diese Arbeitweise ist deshalb praktisch, weil via (ESS-mode eigenen) Tastenkombinationen (alte und neue) R-Anweisungen direkt in den * R* Buffer, d.h. zur Auswertung in das im anderen Fenster laufende R, geschickt werden können.

Wenn man im * R*, also auch in foo.R, C-h m eingibt, bekommt man eine gute Uebersicht über die Tastenkombinationen (erste Paar Zeilen ignorieren).

Einige der wichtigsten dieser Tastenkombinationen sind unten aufgelistet. Es gibt auch eine Referenzkarte dazu auf http://stat.ethz.ch/ESS

C-c f fügt einen Funktions-Header (mit Autor & Datum) an momentaner Stelle ein. Wer zusätzlich den Browser will, soll folgendes tun:
mkdir ~/S; cd ~/S
cp /u/sfs/S/emacs-fun.outline-browser .
Und nun das File nach eigenem Geschmack editieren.
Default: /u/sfs/S/emacs-fun.outline (bitte nicht einfach abändern).
C-c C-f Schickt die Funktion aus Editor-Fenster zur Auswertung ins R, wo der Cursor plaziert ist.
C-c C-r Schickt eine ausgewählte Region (Auswahl mit linker und rechter Maustaste) aus dem Editor-Fenster ins R.
C-c C-j Schickt die Linie aus Editor-Fenster in der der Cursor platziert ist zur Auswertung ins R.
C-c C-n Ist wie C-c C-j, allerdings geht der Cursor im Editor-Fenster gleich zur nächsten Zeile, die dann wiederum mit C-c C-n oder C-c C-j in die R-Session geschickt werden.
C-c C-l (load-file) "kompiliert" ein File in dem nur eine R-Funktion steht und gibt an WO der Fehler sein könnte. Der Autor empfiehlt deshalb für jede R-funktion eine eigenes File zu erstellen.
TAB Man muss nur die ersten Buchstaben des R-objekts schreiben. Mit TAB wird der Namen ergänzt.
## Kommentare in R-Funktionen sollten am Anfang der Linie mit ## oder ### angegeben werden.

Will man, nachdem ein Befehl ausgeführt wurde, auch mit dem Cursor wieder im Fenster sein, wo das R läuft, benützt man statt C-c C-f die Kombination C-c M-f; analog für C-j, C-r und C-n.

Page URL: https://wiki.math.ethz.ch/bin/view/SfSInfo/EmacsESS
2024-12-03
© 2024 Eidgenössische Technische Hochschule Zürich