passar argumentos de função para dplyr e ggplot

Estou confuso sobre como passar o argumento da função para os códigos dplyr e ggplot. Estou usando a versão mais recente do dplyr e ggplot2 Aqui está o meu código para produzir um gráfico de barras (clareza versus preço médio)

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')

erro:

Error in UseMethod("group_by_") : no applicable method for 'group_by_' applied to an object of class "packageIQR"

Para a versão mais recente do dplyr, os verbos sublinhados_ () são suavemente preteridos. Parece que deveríamos usar quosures.

minhas perguntas:

Alguém pode esclarecer as melhores práticas atuais para isso?

o que havia de errado com o código acima? (sem verbos dplyr sublinhados, por favor ..)

No ggplot, eu sei que podemos usar aes_string (), mas no meu caso, apenas um dos parâmetros no aes é passado do argumento da função.

Desde já, obrigado.

questionAnswers(5)

yourAnswerToTheQuestion