Ich bin verwirrt darüber, wie Funktionsargumente in dplyr- und ggplot-Codes übergeben werden. Ich verwende die neueste Version von dplyr und ggplot2 Hier ist mein Code einen BarPlot (Klarheit vs mittlerem Preis)übergeben Sie Funktionsargumente sowohl an dplyr als auch an 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')
Fehler zu erzeugen:
Error in UseMethod("group_by_") : no applicable method for 'group_by_' applied to an object of class "packageIQR"
Für die neueste Version von dplyr, Die unterstrichenen Verben_() sind leise veraltet. Es scheint so, als ob wir Quorungen verwenden sollten.
meine Fragen:
- Kann jemand die aktuelle Best Practice für das klären?
Was war mit dem obigen Code falsch? (kein Unterstrich dplyr Verben ..)
In ggplot, ich weiß, wir können aes_string() verwenden, aber in meinem Fall wird nur einer der Parameter in der AES von Funktionsargument übergeben.
Vielen Dank im Voraus.
Danke – zesla
@sinQueso würde ich nur verwenden 'sym()' (oder 'as.name()') statt 'parse_quosure()' in diesem Fall. – lionel
danke für den Vorschlag @lionel, habe ich meine Antwort aktualisiert – sinQueso