fn_fmls<-
- это совершенно отдельная функция, пример так называемой замещающей функции , подробнее о которой вы можете узнать по ссылке. Суть в том, что он должен принимать форму function_name<-
и всегда возвращает измененную версию своего первого аргумента.
В документации rlang
мы можем видеть, что fn_fmls<-
принимает два аргумента, fn
и value
. Функция используется для замены формальных аргументов fn
на value
. Используя очень простой пример, если мы импортируем только fn_fmls
, мы получим:
#' @importFrom rlang fn_fmls
foo <- function(values) {
fn <- function(a = 1, b = 2) A + B
fn_fmls(fn) <- values
fn()
}
foo(list(A = 10, B = 20))
#> Error in fn_fmls(fn) <- values : could not find function "fn_fmls<-"
Вместо этого, если мы импортируем fn_fmls<-
, мы получим:
#' @importFrom rlang `fn_fmls<-`
foo <- function(values) {
fn <- function(a = 1, b = 2) A + B
fn_fmls(fn) <- values
fn()
}
foo(list(A = 10, B = 20))
#> [1] 30
Обратите внимание, что мы не нужно было импортировать fn_fmls
. Это связано с тем, что аналогичное именование является просто условным обозначением удобства, поскольку fn_fmls
- это функция для извлечения формальных аргументов функции, поэтому имеет логический смысл называть функцию для замены формальных аргументов функции fn_fmls<-
, поскольку это будет записано как fn_fmls(fn) <- value
.