मुझे ggplot2 को किसी अन्य फ़ंक्शन में लपेटने की आवश्यकता है, और वे वैरिएबल को उसी तरीके से पार्स करने में सक्षम होना चाहते हैं, जिसे कोई भी सही दिशा में चला सकता है।एक रैपर में ggplot को तर्क देने के लिए
उदाहरण के लिए कहें, हम नीचे MWE पर विचार करते हैं।
#Load Required libraries.
library(ggplot2)
##My Wrapper Function.
mywrapper <- function(data,xcol,ycol,colorVar){
writeLines("This is my wrapper")
plot <- ggplot(data=data,aes(x=xcol,y=ycol,color=colorVar)) + geom_point()
print(plot)
return(plot)
}
डमी डाटा:
##Demo Data
myData <- data.frame(x=0,y=0,c="Color Series")
मौजूदा प्रयोग जो परेशानी के बिना निष्पादित करता है:
##Example of Original Function Usage, which executes as expected
plot <- ggplot(data=myData,aes(x=x,y=y,color=c)) + geom_point()
print(plot)
उद्देश्य उपयोग वाक्य रचना:
##Example of Intended Usage, which Throws Error ----- "object 'xcol' not found"
mywrapper(data=myData,xcol=x,ycol=y,colorVar=c)
उपर्युक्त ggplot2 पैकेज द्वारा 'मूल' उपयोग का एक उदाहरण देता है, और, मैं इसे किसी अन्य फ़ंक्शन में कैसे लपेटना चाहता हूं। हालांकि, रैपर एक त्रुटि फेंकता है।
मुझे यकीन है कि यह कई अन्य अनुप्रयोगों के लिए लागू होता हूँ, और यह शायद एक हज़ार बार उत्तर दिया गया है, फिर भी, मुझे यकीन है कि क्या इस विषय आर
धन्यवाद, पता नहीं था कि वहाँ aes_string विकल्प था, लेकिन 'name' को पार करने का कोई तरीका नहीं है, मेरा मतलब है, ggplot2 फ़ंक्शन कैसे कहता है कि तर्क क्या है। –
ऑब्जेक्ट का नाम प्राप्त करने के तरीके हैं, ggplot2 'एईएस' में हुड के तहत उपयोग करता है, लेकिन इस तरह के तर्कों को पारित करने के लिए, 'aes_string' बहुत आसान है। –
हाय, यह बहुत उपयोगी उत्तर है। मैं एक हिस्टोग्राम के लिए एक रैपर विकसित करने के लिए इस समाधान का उपयोग कर रहा हूँ। हालांकि, मेरे कोड में मेरे पास मध्य रेखा 'geom_vline (एईएस (xintercept = mean (histogramVariable)), रंग =' लाल '' उत्पन्न करने के लिए कोड है। 'हिस्टोग्राम वैरिएबल' को 'डेटा $ हिस्टोग्राम' के रूप में कितनी चतुरता से पास किया जाता है? – Konrad