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