(ggplot) Метки в процентах на гистограмме с накоплением с двумя категориальными переменными

Я считаю невозможным создать соответствующие метки при построении двух категориальных переменных в гистограмме со 100% накоплением. Рассмотрим код ниже (вымышленный набор данных, который воспроизводит мою проблему):

data <- data.frame(
  gender=sample(c("M", "F"), 40, replace=TRUE),
  football=sample(c("Yes", "No"), 40, replace=TRUE)
)

Что я пытаюсь сделать, так это создать гистограмму со 100% накоплением и отобразить метки для каждой категории. Мне удалось создать сюжет с помощью следующего кода (оба способа производят один и тот же сюжет):

ggplot(data, aes(gender))+
  geom_bar(aes(fill=football), position="fill")+
  scale_y_continuous(labels=percent)

ggplot(data, aes(gender, ..count..))+
  geom_bar(aes(fill=football), position="fill", stat="count")+
  scale_y_continuous(labels=percent) 

Нажмите здесь, чтобы увидеть график

Я понимаю, что для создания процентных меток мне нужно сначала вычислить совокупную сумму. Однако я не могу найти способ правильно использовать «cumsum (var)» с категориальной переменной. Самое близкое, что у меня есть, это следующее:

ggplot(data, aes(gender))+
  geom_bar(aes(fill=football), position="fill")+
  geom_text(aes(label=(..count../sum(..count..))*100, fill=football), stat="count")+
  scale_y_continuous(labels=percent)

Но если вы воспроизведете приведенный выше код, вы увидите, что проценты относятся к общему количеству наблюдений (а не к категориям внутри «пола»), а ось Y становится беспорядочной. Любая помощь будет по-настоящему оценена. Спасибо!


person YSC    schedule 05.08.2016    source источник
comment
добро пожаловать в переполнение стека. stackoverflow.com/ вопросы/5963269/   -  person shayaa    schedule 05.08.2016
comment
@shayaa Спасибо за предупреждение. Должен ли я затем воспроизвести часть набора данных (или фиктивный для этой цели) в комментарии? Или удалить этот вопрос и начать новый? Извините за идиотизм, я конечно еще не пользуюсь этим сайтом.   -  person YSC    schedule 05.08.2016
comment
Любой из них в порядке; то, что вы считаете наиболее понятным для читателя, вероятно, является лучшим.   -  person shayaa    schedule 05.08.2016
comment
Вы пытаетесь сделать это, не делая отдельную сводную таблицу для меток? (Есть много примеров для этой ситуации, в том числе здесь, просто выберите свой любимый метод сводки данных).   -  person aosmith    schedule 05.08.2016
comment
@aosmith Отлично, спасибо за ссылку! Это решило мою проблему (и, что более важно, научило меня делать то, что я искал!)   -  person YSC    schedule 07.08.2016