Этот бит кода должен работать в вашем примере. Обратите внимание, что все жестко закодированные переменные (value, perc, key) заключаются в кавычки тильдой, в то время как quosure (gath) используется напрямую.
library(dplyr) #Devel version, soon-to-be-released 0.6.0
library(tidyr)
library(ggplot2)
library(forcats) #for gss_cat data
аюсь написать функцию, которая сочетает в себе цитаты из скоро, чтобы быть выпущеннымdplyr
версия devel вместе сtidyr::gather
а такжеggplot2
, Пока что похоже на работу сtidyr
Но у меня проблемы с графикой.
Представленная ниже функция работаетtidyr'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))
}
Но я не могу понять, как заставить работать графики. Я пытался с помощью!!gath
сggplot2
, но это не сработало.
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))
}