Получение аргумента вложенной функции из среды ее выполнения - PullRequest
0 голосов
/ 23 мая 2018

Рассмотрим следующий пример:

my_function <- function(...){
  x <- 10
  sum(...)
}

my_function(x)

Я бы хотел выполнить такую ​​операцию, но my_function будет искать в окружающей среде x, чего не будетнайти.

Есть идеи, как я мог бы сделать эту работу?

1 Ответ

0 голосов
/ 23 мая 2018

Это работает, но я не уверен, что это «правильный» способ сделать это

my_function <- function(...){
  x <- 10
  y <- 5
  inn <- substitute(...)
  sum(eval(inn))
}
x <- 2
y <- 3
my_function(c(x, y))

# [1] 15

В зависимости от того, что вы на самом деле пытаетесь сделать, ваша цель может быть достигнута путем простого созданиясписок и использование with например

vars <- list(x = 10, y = c(80, 44), z = matrix(runif(100), 10))

with(vars, x + y[2] + z[10, 3])

# [1] 54.32984
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...