Im Allgemeinen nehme ich Dirks Strategie an. Sie sollten darauf achten, dass Ihr Code vollständig reproduzierbar ist, wie Sie Ihre Rohdaten in Output umgewandelt haben.
Wenn Sie jedoch komplexen Code haben, kann es eine lange Zeit dauern, alles neu zu starten. Ich hatte Code, der über 30 Minuten benötigt, um die Daten zu verarbeiten (d. H. Importieren, transformieren, zusammenführen usw.). In diesen Fällen würde eine einzelne datenzerstörende Codezeile erfordern, dass ich 30 Minuten warten muss, um meinen Arbeitsbereich wiederherzustellen. von Daten zu zerstören Code ich meine Dinge wie:
x <- merge(x, y)
df$x <- df$x^2
z.B. verschmilzt, eine vorhandene Variable mit einer Umwandlung zu ersetzen, Zeilen oder Spalten zu entfernen, und so weiter. In diesen Fällen ist es einfach, besonders wenn man zuerst lernt, dass R einen Fehler macht.
Um zu vermeiden, diese 30 Minuten warten zu müssen, übernehme ich mehrere Strategien:
- Wenn ich bin, etwas zu tun, wo ein Risiko gibt es meine aktiven Objekte zu zerstören, ich werde zuerst das Ergebnis in kopieren ein temporäres Objekt. Ich werde dann überprüfen, ob es mit dem temporären Objekt funktioniert hat, und es dann erneut ausführen, indem ich es durch das richtige Objekt ersetze. Z. B. erster Lauf
temp <- merge(x, y);
prüfen, ob es str(temp); head(temp); tail(temp)
gearbeitet und wenn alles x <- merge(x, y)
- gut aussieht, wie in der psychologischen Forschung üblich ist, habe ich oft großen Datenrahmen mit Hunderten von Variablen und unterschiedlichen Teilmengen von Fällen. Für eine bestimmte Analyse (z. B. eine Tabelle, eine Figur, einen Ergebnistext) entwerfe ich oft nur die Teilmenge von Fällen und Variablen, die ich brauche, in ein separates Objekt für die Analyse und arbeite mit diesem Objekt, wenn ich meine vorbereite und finalisiere Analysecode. Auf diese Weise ist es weniger wahrscheinlich, dass ich versehentlich meinen Hauptdatenrahmen beschädige.Dies setzt voraus, dass die Ergebnisse der Analyse nicht in den Hauptdatenrahmen zurückgeführt werden müssen.
- Wenn ich eine große Anzahl komplexer Datentransformationen abgeschlossen habe, kann ich eine Kopie der Kernarbeitsbereichsobjekte speichern. ZB
save(x, y, z , file = 'backup.Rdata')
So, wenn ich einen Fehler mache, muss ich nur diese Objekte neu laden.
df$x <- NULL
ist eine praktische Möglichkeit, eine Variable in einem Datenrahmen zu entfernen, dass Sie nicht
jedoch am Ende schaffen wollte ich noch den gesamten Code von Grund auf neu laufen zu überprüfen, ob das Ergebnis reproduzierbar ist.
Ich möchte nur meine zwei Cent dafür anbieten. Mein bevorzugter Editor ist Eclipse + StatEt, aber wie Dirk sagt, ist die Wahl des Editors subjektiv. – PaulHurleyuk
Ich benutze gerne Gedit + RGedit. (Es ist leider nie gelungen, StatET unter Fedora zu installieren). So, jetzt haben wir 4 Cent;) – nico
Wenn Sie ein Windows-Benutzer sind, können Sie Tinn-R immer versuchen. Ich benutze es nicht selbst, habe aber großartige Dinge darüber gehört. Wir haben jetzt 6c. :) –