दोनों के लिए फ़ंक्शन तर्क पास करें मैं dplyr और ggplot कोड में फ़ंक्शन तर्क को पास करने के तरीके के बारे में उलझन में हूं। मैं dplyr और ggplot2 यहाँ के नवीनतम संस्करण का उपयोग कर रहा मेरे कोड एक barplot (स्पष्टता बनाम मतलब मूल्य)दोनों dplyr और ggplot
diamond.plot<- function (data, group, metric) {
group<- quo(group)
metric<- quo(metric)
data() %>% group_by(!! group) %>%
summarise(price=mean(!! metric)) %>%
ggplot(aes(x=!! group,y=price))+
geom_bar(stat='identity')
}
diamond.plot(diamonds, group='clarity', metric='price')
त्रुटि का उत्पादन होता है:
Error in UseMethod("group_by_") : no applicable method for 'group_by_' applied to an object of class "packageIQR"
dplyr के नवीनतम संस्करण के लिए, underscored verbs_() धीरे-धीरे बहिष्कृत है। ऐसा लगता है कि हमें quosures का उपयोग करना चाहिए।
मेरे सवालों का:
- कोई इस के लिए मौजूदा सबसे अच्छा अभ्यास स्पष्ट कर सकता हूँ?
उपरोक्त कोड में क्या गलत था? (कोई अंडरस्कोर dplyr क्रियाएँ कृपया ..)
ggplot में, मुझे पता है कि हम aes_string() का उपयोग कर सकते हैं, लेकिन मेरे मामले में, एईएस में पैरामीटर में से केवल एक फ़ंक्शन तर्क से पारित किया जाता है।
अग्रिम धन्यवाद।
धन्यवाद – zesla
@sinQueso मैं सिर्फ प्रतीक का प्रयोग करेंगे '()' (या 'as.name()') के बजाय 'parse_quosure की()' उस मामले में। – lionel
सुझाव @lionel के लिए धन्यवाद, मैंने अपना उत्तर – sinQueso