Como usar enquo e quo_name do dplyr em uma função com tidyr e ggplot2
library(dplyr) #Devel version, soon-to-be-released 0.6.0
library(tidyr)
library(ggplot2)
library(forcats) #for gss_cat data
Estou tentando escrever uma função que combina quosures do que será lançado em brevedplyr
desenvolver versão juntamente comtidyr::gather
eggplot2
. Até agora, parece funcionar comtidyr
, mas estou tendo problemas com a plotagem.
A função abaixo parece funcionar comtidyr's gather
:
GatherFun<-function(gath){
gath<-enquo(gath)
gss_cat%>%select(relig,marital,race,partyid)%>%
gather(key,value,-!!gath)%>%
count(!!gath,key,value)%>%
mutate(perc=n/sum(n))
}
Mas não consigo descobrir como fazer as parcelas funcionarem. Eu tentei usar!!gath
comggplot2
, mas não funcionou.
GatherFun<-function(gath){
gath<-enquo(gath)
gss_cat%>%select(relig,marital,race,partyid)%>%
gather(key,value,-!!gath)%>%
count(!!gath,key,value)%>%
mutate(perc=n/sum(n))%>%
ggplot(aes(x=value,y=perc,fill=!!gath))+
geom_col()+
facet_wrap(~key, scales = "free") +
geom_text(aes(x = "value", y = "perc",
label = "perc", group = !!gath),
position = position_stack(vjust = .05))
}