Если я хочу знать, что хранится в ...
аргумента в функцию R, можно просто преобразовать его, чтобы быть список, например, такВ R, как вы оцениваете ... в вызывающей функции?
foo <- function(...)
{
dots <- list(...)
print(dots)
}
foo(x = 1, 2, "three")
#$x
#[1] 1
#
#[[2]]
#[1] 2
#
#[[3]]
#[1] "three"
То, что я не могу понять, как оценить ...
в вызывающей функции. В следующем примере я хочу, чтобы содержимое baz
возвращало аргумент ...
в bar
.
bar <- function(...)
{
baz()
}
baz <- function()
{
# What should dots be assigned as?
# I tried
# dots <- get("...", envir = parent.frame())
# and variations of
# dots <- eval(list(...), envir = parent.frame())
print(dots)
}
bar(x = 1, 2, "three")
get("...", envir = parent.frame())
возвращает <...>
, который выглядит многообещающим, но я не могу понять, как извлечь ничего полезного из него.
eval(list(...), envir = parent.frame())
вызывает ошибку, утверждая, что ...
используется неправильно.
Как я могу получить ...
от bar
?
+1 Это интересный пример. Если у вас есть шанс, было бы неплохо, если бы вы могли обновить это с объяснением * почему * это может потребоваться для многоточия, но не для других переменных? – Shane
@ Шейн: Хороший вопрос. Я собираюсь копать дальше, но это быстро проникает в область плавления мозга. Продолжение следует ... –