Вот один из способов передачи неразрешенных символов с использованием базы R
my_order <- function(data, ...) {
dots <- substitute(...())
with(data, do.call("order", as.list(dots)))
}
my_order(mtcars, mpg, cyl)
По сути, мы используем замену для захвата имен символов, а затем используем do.call
, чтобы ввести их в вызов order
.
В качестве альтернативы вы могли бы подумать о перезаписи вызова функции и изменении среды эвакуации
my_order <- function(data, ...) {
call <-match.call()
call[[1]] <- quote(order)
call[2] <- NULL
eval(call, data, parent.frame())
}
my_order(mtcars, mpg, cyl)