2011-10-17 13 views
5

निम्नलिखित कोड पर विचार करें:ggplot के साथ उपयोग के लिए किसी अन्य फ़ंक्शन के भीतर फ़ंक्शन तर्कों को पास/मूल्यांकन कैसे करें?

test <- function(x,n){ 

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

test(mtcars,1) 

यह फेंकता एक त्रुटि कारण आर चयन नहीं मिल रहा। मैंने सफलता के बिना substitute, eval और get के साथ भी खेला। मुझे this similar question मिला और मैंने सोचा कि मुझे Joris' उत्तर समझा गया है लेकिन ggplot के तर्कों के लिए एक ही चाल का उपयोग नहीं कर सकता।

उत्तर

9

आप इस उद्देश्य के लिए aes_string का उपयोग कर सकते हैं। तो test इस तरह होना चाहिए:

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

धन्यवाद koshke, मुझे लगता है मैं तो कई छोटे चाल हर समय याद नहीं होगा चाहते हैं। फिर भी यह समझने में थोड़ा सा मदद करता है कि ggplot कैसे लिखा गया था। –

संबंधित मुद्दे