Passando um nome de variável para uma função em R

Eu notei que alguns pacotes permitem que você passe nomes de símbolos que podem nem ser válidos no contexto onde a função é chamada. Eu estou querendo saber como isso funciona e como eu posso usá-lo no meu próprio código?

Aqui está um exemplo com ggplot2:

a <- data.frame(x=1:10,y=1:10)
library(ggplot2)
qplot(data=a,x=x,y=y)

x ey não existem no meu namespace, mas ggplot entende que eles são parte do quadro de dados e adia sua avaliação para um contexto no qual eles são válidos. Eu tentei fazer a mesma coisa:

b <- function(data,name) { within(data,print(name)) }
b(a,x)

No entanto, isso falha miseravelmente:

Error in print(name) : object 'x' not found

O que estou fazendo de errado? Como é que isso funciona?

Nota: isto énão uma duplicata dePassar nome da variável para uma função em r

questionAnswers(3)

yourAnswerToTheQuestion