Вы можете свернуть функцию, которая принимает выражение в кавычках и выводит как вызов, так и результат в список, а затем вызывает соответствующий элемент списка по мере необходимости.
f <- function(expr) list(call = expr, value = eval(expr))
### call f() with a quoted expression
out <- f(quote(x <- seq(0, 1, length=1000)))
### get the call
out$call
# x <- seq(0, 1, length = 1000)
### get the (first few) values
head(out$value)
# [1] 0.000000000 0.001001001 0.002002002 0.003003003 0.004004004 0.005005005
Другой вариант основан на комментарии @ thelatemail. Мы можем создать вызов через call
, а затем оценить его, если нам нужно.
cl <- call("<-", quote(x), quote(seq(0, 1, length = 1000)))
cl
# x <- seq(0, 1, length = 1000)
eval(cl)
head(x)
# [1] 0.000000000 0.001001001 0.002002002 0.003003003 0.004004004 0.005005005