Где найти документацию по использованию ...
функций in? Примеры были бы полезны.
Где найти документацию по использованию ...
функций in? Примеры были бы полезны.
Ответы:
Для описания используется слово ...
«многоточие». Знание этого должно облегчить поиск информации о конструкции. Например, первое попадание в Google - это еще один вопрос на этом сайте: как использовать функцию многоточия в R при написании собственной функции?
dots
, например , на странице справки по имени ?dots
и «многоточие» даже не упоминается на странице
?dots
у меня не работает, но ?'...'
работает.
Небольшой пример для начала.
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"))
Функция,, f
сохраняет все входные аргументы, кроме первого, в переменной с многоточием. Для доступа к его содержимому проще всего преобразовать его в список (1). Однако в основном используется для передачи аргументов подфункциям, что не требует преобразования (2).
f()
вызывается повторно каждый раз с разными аргументами. Запустите код и посмотрите, сможете ли вы понять, что происходит.
...length()
как хорошо
Вам следует перейти к «Определению языка R», раздел 2.1.9 Точка-точка-точка . Он поставляется вместе с установкой R. Запустите help.start()
интерактивный сеанс, чтобы вызвать справку HTML, и щелкните ссылку Определение языка R. Вы также можете использовать PDF- или HTML- версию с основного сайта.
В любом случае, ...
используется для сопоставления неуказанных формальных аргументов функции.
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
Как видите, я прошел, trim = .5
хотя это не указано как формальный аргумент sapply
функции.
(обратите внимание, что этот пример тривиален, вы можете использовать sapply(mtcars, median)
для достижения того же результата)
trim
- аргумент mean
функции. ...
В sapply
являются механизмом , trim
которые будут переданы mean
.
...
это R-эквивалент ключевого слова python input (def func(**kwargs)
)