2011-10-17 12 views
5

perche il seguente codice:Come passare/valutare gli argomenti della funzione all'interno di un'altra funzione da utilizzare con ggplot?

test <- function(x,n){ 

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

test(mtcars,1) 

getta un errore causa R non riesce a trovare la selezione. Ho anche giocato con substitute, eval e get senza successo. Ho trovato this similar question e ho pensato di aver capito Joris' risposta, ma non posso usare lo stesso trucco anche per gli argomenti di ggplot.

risposta

9

è possibile utilizzare aes_string per questo scopo. Quindi test dovrebbe essere così:

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

Grazie koshke, vorrei non perdere così tanti piccoli trucchi tutto il tempo. Eppure aiuta un po 'a capire come è stato scritto ggplot. –

Problemi correlati