Рассмотрим простую функцию, которая добавляет ggtitle к grob
f <- function(PLOT, TITLE) {
PLOT + ggtitle(TITLE)
}
Вызов функции напрямую работает так, как ожидалось.
Однако вызов функции через do.call(f, ..)
вызывает ошибку, когда TITLE
является объектом language
## Sample Data
TIT <- bquote(atop("This is some text", atop(italic("Here is some more text"))))
P <- qplot(x=1:10, y=1:10, geom="point")
## WORKS FINE
f(P, TIT)
## FAILS
do.call(f, list(P, TIT))
## Error in labs(title = label) : could not find function "atop"
Это, конечно, происходит только тогда, когда TIT
является языковым объектом
TIT.char <- "This is some text\nHere is some more text"
do.call(f, list(P, TIT.char))
## No Error
Как do.call()
можно использовать правильно, когда аргументы являются языковыми объектами?