Ich habe immer Startprofildateien anderer Leute gefunden, die sowohl nützlich als auch lehrreich in Bezug auf die Sprache sind. Während ich einige Anpassungen für Bash und Vim habe , habe ich nichts für R.
Zum Beispiel wollte ich immer unterschiedliche Farben für die Eingabe und Ausgabe von Text in einem Fensterterminal und möglicherweise sogar die Hervorhebung der Syntax.
r
terminal
customization
rprofile
Peter Mortensen
quelle
quelle
.Rprofile
sollte keinen Code enthalten, der die Ergebnisse ändert. Was Sie einschließen können, sind Dinge, die das Erscheinungsbild von R (z. B.options("width"=160)
) oder des Standard-CRAN-Spiegels (zoptions(repos = c(CRAN = "http://cran.rstudio.com"))
. B. ) ändern . Laden Sie jedoch keine Pakete, ändern Sie nicht die Standardoptionen für regelmäßig verwendete Funktionen, definieren Sie Funktionen usw. Ihr Code sollte in sich geschlossen sein und die Ergebnisse ohne Ihre spezielle.Rprofile
Datei reproduzieren ..Rprofile
?.Rprofile
ist ein geeigneter Ort, um Anwendungsänderungen vorzunehmen. Zweitens sollte Ihre Frage eine separate SO-Frage sein. Ich versuche, ein Muster zu verwenden, das dem in unserem Lebensmittelinspektionsprojekt ähnelt (siehe das Codelayout und die Initialisierungsschritte oben in jedem Skript).Antworten:
Hier ist mein. Es wird dir beim Färben nicht helfen, aber das bekomme ich von ESS und Emacs ...
quelle
r
und dann zu erstellenrm
, können Sie es in einenlocal({ })
Block einfügen. Gute Antwort, ich liebe die X11-Konfiguration!local({ ... })
wie in gezeigt,help(Startup)
ist das, was ich heutzutage normalerweise macheRprofile.site
. Ich habe den X11-Hack seitObwohl ich das eigentlich nicht in meinem .Rprofile habe, weil es den Code meiner Mitautoren beschädigen könnte, wünschte ich, es wäre die Standardeinstellung. Warum?
1) Zeichenvektoren verbrauchen weniger Speicher (aber nur knapp);
2) Noch wichtiger ist, wir würden Probleme vermeiden wie:
und
Faktoren sind großartig, wenn Sie sie benötigen (z. B. Implementieren der Reihenfolge in Diagrammen), aber meistens ein Ärgernis.
quelle
Ich hasse es, jedes Mal die vollständigen Wörter "Kopf", "Zusammenfassung", "Namen" einzugeben, deshalb verwende ich Aliase.
Sie können Aliase in Ihre .Rprofile-Datei einfügen, müssen jedoch den vollständigen Pfad zur Funktion verwenden (z. B. utils :: head), da dies sonst nicht funktioniert.
BEARBEITEN: Um Ihre Frage zu beantworten, können Sie das Colorout- Paket verwenden, um verschiedene Farben im Terminal zu haben. Cool! :-)
quelle
n
, ich persönlich würde mich beim Debuggen im hinteren Bereich beißen..startup <- new.env()
assign("h", utils::head, env=.startup)
assign("n", base::names, env=.startup)
assign("ht", function(d) rbind(head(d,6),tail(d,6)) , env=.startup)
assign("s", base::summary, env=.startup)
attach(.startup)
sum <- base::summary
. Das war keine so gute Idee.colorout
: "" "Dieses Paket wurde archiviert: Es wurden Nicht-API-Einstiegspunkte verwendet, die von den CRAN-Richtlinien nicht zugelassen wurden." "Hier ist meins. Ich verwende immer das Haupt-Cran-Repository und habe Code, um die Beschaffung von Code für Entwicklungspakete zu vereinfachen.
quelle
Ich mag es, meinen R-Befehlsverlauf zu speichern und ihn jedes Mal verfügbar zu haben, wenn ich R ausführe:
In der Shell oder .bashrc:
in .Rprofil:
quelle
Hier sind zwei Funktionen, die ich für die Arbeit mit Windows nützlich finde.
Der erste konvertiert das
\
s in/
.Der zweite öffnet das Arbeitsverzeichnis in einem neuen Explorer-Fenster.
quelle
.repath
kommt so in mein .Rprofil.snippet wpp
`r paste("\"", gsub("\\\\", "/", readClipboard()), "\"", sep = "")`
Ich habe diesen dynamischeren Trick, um die volle Terminalbreite zu verwenden, der versucht, aus der Umgebungsvariablen COLUMNS (unter Linux) zu lesen:
Auf diese Weise nutzt R die gesamte Breite, auch wenn Sie die Größe Ihres Terminalfensters ändern.
quelle
COLUMNS
nicht eingestellt, können Sie eswidth = as.integer(system('tput cols',intern=TRUE)
als Rücklaufsperre versuchen .Die meisten meiner persönlichen Funktionen und geladenen Bibliotheken befinden sich im Skript Rfunctions.r
quelle
Hier ist mein ~ / .R-Profil , das für Mac und Linux entwickelt wurde.
Dadurch sind Fehler leichter zu erkennen.
Ich hasse die CRAN-Menüauswahl, also stellen Sie eine gute ein.
Mehr Geschichte!
Das Folgende ist für die Ausführung unter Mac OSX vom Terminal aus vorgesehen (was ich R.app sehr vorziehe, da es stabiler ist und Sie Ihre Arbeit nach Verzeichnis organisieren können; stellen Sie außerdem sicher, dass Sie ein gutes ~ / .inputrc erhalten ). Standardmäßig erhalten Sie ein X11-Display, das nicht so gut aussieht. Dies ergibt stattdessen eine Quarzanzeige, die der GUI entspricht. Die
if
Anweisung soll den Fall erfassen, wenn Sie R vom Terminal auf dem Mac ausführen.Und laden Sie ein paar Bibliotheken vor,
Dabei ist util.r eine zufällige Tüte mit Sachen, die ich benutze, unter Fluss.
Da andere Leute die Konsolenbreite erwähnten, mache ich das auch so.
Dies ist eigentlich nicht der
.Rprofile
Fall, da Sie es jedes Mal neu ausführen müssen, wenn Sie die Größe des Terminalfensters ändern. Ich habe es inutil.r
dann beschaffe ich es einfach nach Bedarf.quelle
Hier sind meine:
quelle
?new.env
,?assign
und?sys.source
. Wenn Sie es nicht zum Laufen bringen können, posten Sie ein neues Q auf SO und ich bin sicher, dass Sie Antworten erhalten.my.as.Date
Möglicherweise wird IhrLubridate
Paket ersetzt. Habe ich recht?quelle
Lassen Sie data.frames etwas wie 'head' anzeigen, nur ohne 'head' eingeben zu müssen.
(Von Wie wird 'Kopf' automatisch auf die Ausgabe angewendet? )
quelle
Ich habe oft eine Reihe von Debug-Aufrufen, die ich aufrufen muss, und das Kommentieren kann sehr langwierig sein. Mit Hilfe der SO-Community habe ich mich für die folgende Lösung entschieden und diese in meine eingefügt
.Rprofile.site
.# BROWSER
ist für meine Eclipse-Aufgaben vorhanden, damit ich im Fenster "Aufgabenansicht" einen Überblick über die Browseraufrufe habe.quelle
Meins ist nicht besonders schick:
quelle
Ich arbeite viel in MySQL-Datenbanken, daher ist es ein Glücksfall, sofort eine Verbindung herzustellen. Ich wünschte nur, es gäbe eine Möglichkeit, die verfügbaren Datenbanken aufzulisten, damit ich mich nicht an all die verschiedenen Namen erinnern müsste.
quelle
Stephen Turners Beitrag zu .Rprofiles enthält mehrere nützliche Aliase und Starterfunktionen.
Ich benutze sein ht und hh oft.
quelle
corner
enthält, die dasselbe tut wie Ihrehh
Funktion und ein bisschen mehr. ;)Hier ist meine, einschließlich einiger der genannten Ideen.
Zwei Dinge, die Sie vielleicht betrachten möchten:
.
quelle
Ich verwende Folgendes, um cacheSweave (oder pgfSweave) dazu zu bringen, mit der Schaltfläche "PDF kompilieren" in RStudio zu arbeiten:
quelle
Meins beinhaltet,
options(menu.graphics=FALSE)
weil ich das tcltk-Popup für die CRAN-Spiegelauswahl in R deaktivieren / unterdrücken möchte .quelle
Hier ist meins. Nichts zu innovativ. Gedanken darüber, warum bestimmte Entscheidungen:
stringsAsFactors
da es für mich äußerst anstrengend ist, ihn jedes Mal als Argument zu übergeben, wenn ich eine CSV einlese. Das heißt, es hat mich bereits ein wenig verärgert, wenn ich Code verwendet habe, der auf meinem normalen Computer auf einem Computer geschrieben wurde hatte mein .Rprofil nicht. Ich behalte es jedoch bei, da die Probleme, die es verursacht hat, im Vergleich zu den Problemen, die es nicht jeden Tag verursacht hat, verblasst sind.utils
Paket zuvor nicht geladen habenoptions(error=recover)
, kann es keine Wiederherstellung finden, wenn es in eineminteractive()
Block platziert wird..db
meine Dropbox-Einstellung verwendet, anstattoptions(dropbox=...)
sie ständig im Inneren zu verwenden,file.path
und sie spart viel Tipparbeit. Die Führung verhindert, dass.
es mit erscheintls()
.Ohne weiteres:
quelle
Hier ist ein kleiner Ausschnitt zum Exportieren von Tabellen nach LaTeX . Für die vielen Berichte, die ich schreibe, werden alle Spaltennamen in den Mathematikmodus geändert. Der Rest meines .R-Profils ist ziemlich normal und wird oben größtenteils behandelt.
quelle
Ich habe mein Gitterfarbthema in meinem Profil festgelegt. Hier sind zwei weitere Verbesserungen, die ich verwende:
quelle
setwd
Ersatz wird besser funktionieren in Version:utils::assignInNamespace("setwd",function(dir) {on.exit(setWindowTitle(base::getwd())); .Internal(setwd(dir))}, "base")
Ich habe eine Umgebungsvariable R_USER_WORKSPACE, die auf das oberste Verzeichnis meiner Pakete verweist. In .Rprofile definiere ich eine Funktion devlib, die das Arbeitsverzeichnis festlegt (damit data () funktioniert) und alle .R-Dateien im R-Unterverzeichnis als Quelle bereitstellt. Es ist der obigen l () -Funktion von Hadley ziemlich ähnlich.
quelle
Ich fand zwei Funktionen wirklich notwendig: Erstens, wenn ich
debug()
mehrere Funktionen eingestellt und den Fehler behoben habe, möchte ichundebug()
alle Funktionen - nicht eine nach der anderen. Dieundebug_all()
Funktion hinzugefügt , wie die akzeptierte Antwort hier ist das Beste.Zweitens, wenn ich viele Funktionen definiert habe und nach einem bestimmten Variablennamen suche, ist es schwierig, ihn in allen Ergebnissen der
ls()
, einschließlich der Funktionsnamen, zu finden. Die hierlsnofun()
gepostete Funktion ist wirklich gut.quelle