Wo finde ich Dokumentation zur Verwendung ...
in Funktionen? Beispiele wären nützlich.
Wo finde ich Dokumentation zur Verwendung ...
in Funktionen? Beispiele wären nützlich.
Antworten:
Das zur Beschreibung verwendete Wort ...
ist "Auslassungspunkte". Wenn Sie dies wissen, sollte die Suche nach Informationen über das Konstrukt erleichtert werden. Der erste Treffer bei Google ist beispielsweise eine weitere Frage auf dieser Website: Wie wird die Ellipsenfunktion von R beim Schreiben Ihrer eigenen Funktion verwendet?
dots
, zB die ?dots
?dots
funktioniert das bei mir nicht, ?'...'
tut es aber .
Ein kleines Beispiel für den Einstieg.
f <- function(x, ...)
{
dots <- list(...) #1
if(length(dots) == 0) return(NULL)
cat("The arguments in ... are\n")
print(dots)
f(...) #2
}
f(1,2,3,"a", list("monkey"))
Die Funktion f
,, speichert alle bis auf das erste Eingabeargument in der Ellipsenvariablen. Für den Zugriff auf den Inhalt ist es am einfachsten, ihn in eine Liste zu konvertieren (1). Die Hauptverwendung besteht jedoch darin, Argumente an Unterfunktionen zu übergeben, für die keine Konvertierung erforderlich ist (2).
f()
wird jedes Mal wiederholt mit unterschiedlichen Argumenten aufgerufen. Führen Sie den Code aus und prüfen Sie, ob Sie verstehen können, was passiert.
...length()
wie gut
Sie sollten zu "R-Sprachdefinition", Abschnitt 2.1.9 Punkt-Punkt-Punkt gehen . Es wird mit R-Installation geliefert. Führen Sie help.start()
eine interaktive Sitzung aus, um die HTML-Hilfe aufzurufen, und klicken Sie auf den Link Die R-Sprachdefinition . Sie können auch die PDF- oder HTML- Version von der Hauptseite aus verwenden.
Auf jeden Fall ...
wird verwendet, um nicht spezifizierte formale Argumente einer Funktion abzugleichen.
args(sapply)
function (X, FUN, ..., simplify = TRUE, USE.NAMES = TRUE)
NULL
sapply(mtcars, mean, trim = .5)
mpg cyl disp hp drat wt qsec vs am gear
19.200 6.000 196.300 123.000 3.695 3.325 17.710 0.000 0.000 4.000
carb
2.000
Wie Sie sehen können, habe ich bestanden, trim = .5
obwohl es nicht als formales sapply
Funktionsargument angegeben ist.
(Beachten Sie, dass dieses Beispiel trivial ist und Sie sapply(mtcars, median)
das gleiche Ergebnis erzielen können.)
trim
ist ein Argument für die mean
Funktion. Die ...
in sapply
sind der Mechanismus, trim
an den übergeben werden soll mean
.
...
das R-Äquivalent von Pythons Schlüsselworteingabe (def func(**kwargs)
) ist