Этот бит кода должен работать в вашем примере. Обратите внимание, что все жестко закодированные переменные (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))
}

Ответы на вопрос(4)

Ваш ответ на вопрос