Давайте рассмотрим типичный deparse(substitute(
R вызов:
f1 <-function(u,x,y)
{print(deparse(substitute(x)))}
varU='vu'
varX='vx'
varY='vy'
f1(u=varU,x=varX,y=varY)
Это приводит к
[1] "varX"
, что мы и ожидаем.
Тогда, приходит проблема, я пытаюсь получить аналогичное поведение, используя ...
аргументы, т.е.
f2 <- function(...)
{ l <- list(...)
x=l$x
print(deparse(substitute(x))) ### this cannot work but I would like something like that
}
Это, что неудивительно, не работает:
f2(u=varU,x=varX,y=varY)
[1] "\"vx\"" ### wrong ! I would like "varX"
Я пытался получитьожидаемое поведение с использованием другой комбинации решений, но ни одно из них не дает мне того, что ожидалось, и мне кажется, что я все еще не достаточно разбираюсь в ленивом eval, чтобы найти себя с практическими рекомендациями за приемлемое количество времени.