2011-10-17 19 views
5

Por favor, considere el siguiente código:¿Cómo pasar/evaluar argumentos de función dentro de otra función para usar con ggplot?

test <- function(x,n){ 

selection<-names(x)[n] 
graph <- ggplot(x, aes(factor(selection))) 
graph + geom_bar() 
} 

test(mtcars,1) 

lanza una causa de error R no puede encontrar la selección. También jugué con substitute, eval y get sin éxito. Encontré this similar question y pensé que entendía Joris' responder pero no puedo usar el mismo truco para los argumentos de ggplot también.

Respuesta

9

puede usar aes_string para este fin. Así que test debería ser así:

test <- function(x,n){ 
    graph <- ggplot(x, aes_string(x = names(x)[n])) 
    graph + geom_bar() 
} 
+0

Gracias koshke, ojalá no extrañaría tantos trucos pequeños todo el tiempo. Sin embargo, ayuda un poco entender cómo se escribió ggplot. –

Cuestiones relacionadas