Установить имя аргумента как переменную в вызове функции R API - PullRequest
0 голосов
/ 31 мая 2018

Я работаю с R API, который имеет функцию со следующим синтаксисом:

somefun(...)

Пример вызова:

somefun(foo = list(a = 10, b = 20))

Поскольку существует много переменных, которые могут бытьустановить с помощью этой функции (а не просто 'foo'), как можно изменить "foo" на имя переменной в скрипте?Что-то вроде:

x = "foo"    ## or x = "bar", etc
somefun(x = list(a = 10, b = 20))

1 Ответ

0 голосов
/ 01 июня 2018

Наверное, не самый чистый.Вы можете использовать eval + parse

somefun <- function(...) {
    as.list(match.call())[-1]
}

somefun(foo = list(a = 10, b = 20))
#$foo
#list(a = 10, b = 20)

eval(parse(text=paste0("somefun(", x, " = list(a = 10, b = 20))")))
#$foo
#list(a = 10, b = 20)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...