Рассмотрим типичный вызов 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, чтобы найти себе практические рекомендации в разумное количество времени.
f2 <- function(...) as.character(as.list(match.call())$x)
? - person chinsoon12   schedule 06.03.2019