2016-07-21 21 views
1

Ich frage mich, ob es möglich ist, den Standardwert für eine integrierte Funktion in R zu ändern? Ich habe einige Fragen zum Festlegen von Standardwerten für benutzerdefinierte Funktionen in R, aber nicht für integrierte Funktionen gefunden.Ändern Sie den Standardwert in einer integrierten Funktion

Warum möchte ich das? Um ehrlich zu sein, es ist nur eine Frage der Bequemlichkeit. Manchmal schreibe ich meine Ergebnisse/Daten in eine .csv-Datei, um einige schnelle Diagramme in Excel zu erstellen. Dazu benutze ich die write.csv Funktion. Eine der Standardeinstellungen in dieser Funktion ist row.names = TRUE. Bis jetzt wollte ich nie die Zeile.Namen in meiner Excel-Datei haben und ich habe vergessen, row.names = FALSE zu der Funktion dutzende Male hinzuzufügen. Ist es also möglich, den Standardwert in dieser Funktion auf row.names = FALSE zu ändern?

+2

Für Ihren speziellen Anwendungsfall können Sie 'write_csv' aus dem readr-Paket versuchen. Beschreibung: * Dies ist etwa doppelt so schnell wie write.csv und schreibt niemals Zeilennamen. * Durch die Verwendung einer neuen Funktion, entweder Ihres eigenen Wrappers oder eines Pakets, wird Ihr Workflow reproduzierbarer als das Einstellen softwarespezifischer Standardwerte. –

+0

Es gibt ein archiviertes [Defaults] (http://cran.wustl.edu/web/packages/Defaults/index.html) Paket, aber @ ZheyuanLis Antwort wird viel einfacher sein, als zu versuchen, ein veraltetes Paket zu installieren –

+0

Wenn Sie den zusätzlichen Schritt zum Dokumentieren der Standardänderung nicht machen, machen Sie Ihr Skript weniger reproduzierbar. Denken Sie 1 Monat oder 1 Jahr auf der ganzen Linie nach. FWIW, ich vergesse nie, irgendwelche Parameter hinzuzufügen/zu ändern (wenn ich dies tue, erhalte ich eine Warnung/einen Fehler), so ist es möglich, die Standardeinstellungen zu umgehen. :) –

Antwort

4

Nein. Aber wenn Sie Bequemlichkeit wünschen, schreiben Sie selbst eine Wrapper-Funktion. Zum Beispiel:

my_write.csv <- function(...) write.csv(..., row.names = FALSE) 

dann verwenden Sie my_write.csv.