f <- function(...) {
list(one = ..1,
three = ..3,
four = ..4,
two = ..2)
}
f(1, 2, 3, 4)
# $one
# [1] 1
#
# $three
# [1] 3
#
# $four
# [1] 4
#
# $two
# [1] 2
Aber was Sie wirklich wollen, ist zu tun passieren jeweils als einzelne Argumente. Also in diesem Fall, müssen Sie entweder das tun explizit (viele Typisierung) oder do.call
verwenden, die eine Liste von Parametern Funktionen
cc <- c("", "a", "b", "c.txt")
do.call('file.path', as.list(cc))
# [1] "https://stackoverflow.com/a/b/c.txt"
file.path
passieren lässt ist schön, dass es nur zwei Argumente, ein von denen brauchen Sie nicht zu ändern, aber wenn Sie hast du
do.call('file.path', c(as.list(cc), fsep = '/xx/'))
# [1] "/xx/a/xx/b/xx/c.txt"
so in diesem Fall tun könnten Sie eine namens Liste an die Funktion zu übergeben jedes Argument entsprechen
Eine Randnotiz, die ich über gekommen sind, so etwas wie
do.call('base::mean', list(1:4))
# Error in do.call("base::mean", list(1:4)) :
# could not find function "base::mean"
funktioniert nicht, wenn Sie eine Funktion in einem bestimmten Paket angeben müssen. Sie entweder
f <- base:::mean; do.call('f', list(1:4))
# [1] 2.5
oder nur
do.call(base::mean, list(1:4))
# [1] 2.5
'do.call ('file.path', as.list (cc))' – rawr